{\rtf1\ansi\deff0{\fonttbl{\f0 \fswiss Helvetica;}{\f1 Courier;}}
{\colortbl;\red255\green0\blue0;\red0\green0\blue255;}
\widowctrl\hyphauto

{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs36 \u24341?\u35328?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u22238?\u21040?\u19968?\u24180?\u21069?\u30340?\u20170?\u22825?(2014.09.29)\u65292?\u19968?\u36793?\u22312?\u20934?\u22791?\u30528?\u21435?\u27801?\u28448?\u20043?\u26053?\u65292?\u19968?\u36793?\u22312?\u20934?\u22791?\u22269?\u24198?\u21518?\u30340?\u21360?\u24230?\u22521?\u35757?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u24403?\u26102?\u25105?\u36824?\u22312?\u29992?\u25105?\u30340?Lumia 920\u65292?\u19978?\u38754?\u27809?\u26377?\u21508?\u24335?\u21508?\u26679?\u30340?\u36719?\u20214?\u65292?\u38500?\u20102?\u25105?\u26368?\u38656?\u35201?\u30340?\u22320?\u22270?\u12289?\u30456?\u26426?\u12290?\u25152?\u20197?\u65292?\u25105?\u38656?\u35201?\u20026?\u25105?\u30340?\u25163?\u26426?\u20889?\u19968?\u20010?\u24212?\u29992?\u65292?\u29992?\u20110?\u22312?\u22320?\u22270?\u19978?\u26174?\u31034?\u22270?\u29255?\u20449?\u24687?\u21450?\u29031?\u29255?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u20170?\u22825?Github\u24050?\u32463?\u21487?\u20197?\u25903?\u25345?geojson\u20102?\u65292?\u20110?\u26159?\u20320?\u21487?\u20197?\u30475?\u21040?\u25105?\u22312?\u20043?\u21069?\u29983?\u25104?\u30340?geojson\u22312?\u22320?\u22270?\u19978?\u30340?\u25928?\u26524?{\field{\*\fldinst{HYPERLINK "https://github.com/phodal-archive/onmap/blob/master/gps.geojson"}}{\fldrslt{\ul
gps.geojson
}}}
\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs32 Re-Practise\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u22312?\u36807?\u21435?\u30340?\u36817?\u19968?\u24180?\u26102?\u26399?\u37324?\u65292?\u33457?\u36153?\u20102?\u24456?\u22810?\u26102?\u38388?\u22312?\u25552?\u39640?\u20195?\u30721?\u36136?\u37327?\u19982?\u26500?\u24314?\u26550?\u26500?\u30693?\u35782?\u12290?\u35797?\u30528?\u23398?\u20064?\u26576?\u19968?\u26041?\u38754?\u30340?\u26550?\u26500?\u30693?\u35782?\u65292?\u24212?\u29992?\u21040?\u26576?\u20010?\u29087?\u24713?\u39046?\u22495?\u12290?\par}
{\pard \ql \f0 \sa180 \li360 \fi-360 1.\tx360\tab \u25152?\u35859?\u30340?\u19968?\u19975?\u23567?\u26102?\u22825?\u25165?\u29702?\u35770?\u19968?\u30452?\u22312?\u35828?\u26126?\u32451?\u20064?\u30340?\u37325?\u35201?\u24615?\u65292?\u20320?\u38656?\u35201?\u19981?\u26029?\u22320?\u21435?\u32451?\u20064?\u12290?\u20294?\u26159?\u24182?\u19981?\u26159?\u35828?\u20320?\u32451?\u20064?\u20102?\u19968?\u19975?\u23567?\u26102?\u20043?\u21518?\u23601?\u21487?\u20197?\u35753?\u20320?\u25104?\u20026?\u19968?\u20010?\u19987?\u23478?\u65292?\u32780?\u32451?\u20064?\u26159?\u24517?\u39035?\u30340?\u12290?\par}
{\pard \ql \f0 \sa180 \li360 \fi-360 2.\tx360\tab \u35753?\u25105?\u24819?\u36215?\u20102?\u22312?\u22823?\u23398?\u26102?\u20195?\u23398?\u30340?PID\u31639?\u27861?\u65292?\u34429?\u28982?\u25105?\u27809?\u26377?\u25484?\u25569?\u22909?\u25511?\u21046?\u39046?\u22495?\u30340?\u30456?\u20851?\u29702?\u35770?\u21450?\u31639?\u27861?\u65292?\u20294?\u26159?\u25105?\u23545?\u21508?\u31181?\u35843?\u33410?\u36824?\u31639?\u26377?\u28857?\u21360?\u35937?\u12290?\u31616?\u21333?\u22320?\u26469?\u35828?\u65292?\u25105?\u20204?\u38656?\u35201?\u19981?\u26029?\u35843?\u25972?\u33258?\u24049?\u30340?\u26041?\u21521?\u12290?\sa180\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u29616?\u22312?\u36824?\u23384?\u22312?\u30340?\u37027?\u20123?\u20114?\u32852?\u32593?\u20844?\u21496?\u25110?\u32773?\u35828?\u24320?\u28304?\u39033?\u30446?\u65292?\u25105?\u20204?\u20250?\u21457?\u29616?\u20004?\u20010?\u19981?\u31639?\u26377?\u36259?\u30340?\u35268?\u24459?\u65306?\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 1.\tx360\tab \u19968?\u20010?\u19968?\u30452?\u22312?\u36816?\u34892?\u30340?\u36719?\u20214?\u12290?\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 2.\tx360\tab \u23581?\u35797?\u20102?\u20960?\u20010?\u20135?\u21697?\u65292?\u26368?\u21518?\u25214?\u21040?\u20102?\u19968?\u20010?\u21512?\u36866?\u30340?\u26041?\u21521?\u12290?\sa180\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u25105?\u21457?\u29616?\u25105?\u23646?\u20110?\u19981?\u26029?\u23581?\u35797?\u22320?\u31867?\u22411?\u12290?\u19968?\u30452?\u24819?\u26500?\u24314?\u19968?\u20010?\u24320?\u28304?\u36719?\u20214?\u65292?\u20294?\u26159?\u20284?\u20046?\u19968?\u30452?\u27809?\u26377?\u25214?\u23545?\u21512?\u29702?\u30340?\u29992?\u25143?\u65311?\u20294?\u26159?\u65292?\u25105?\u20204?\u20250?\u21457?\u29616?\u19978?\u36848?\u22320?\u20004?\u32773?\u37117?\u22312?\u19981?\u26029?\u22320?retry\u65292?\u19981?\u26029?\u22320?retry\u24402?\u26681?\u20110?\u37027?\u20123?\u20154?\u22312?\u19981?\u26029?\u30340?repractise\u12290?\u19982?\u20043?\u25104?\u20026?\u21453?\u20363?\u30340?\u20415?\u26159?\u65306?\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 1.\tx360\tab \u19968?\u20010?\u25104?\u21151?\u21457?\u24067?\u20960?\u27425?\u30340?\u36719?\u20214?\u65292?\u20294?\u26159?\u26368?\u21518?\u22833?\u36133?\u20102?\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 2.\tx360\tab \u23581?\u35797?\u20102?\u19981?\u21516?\u30340?\u20960?\u20010?\u20135?\u21697?\u65292?\u20294?\u26159?\u22833?\u36133?\u20102?\sa180\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u25152?\u35859?\u30340?\u22833?\u36133?\u65292?\u23601?\u26159?\u20320?\u31163?\u24320?\u20154?\u19990?\u20102?\u12290?\u25152?\u20197?\u65292?\u22312?\u25105?\u20204?\u36824?\u27963?\u30528?\u30340?\u26102?\u20505?\u65292?\u25105?\u20204?\u24635?\u20250?\u26377?\u26426?\u20250?\u21435?\u23581?\u35797?\u12290?\u22312?\u37027?\u20043?\u21069?\u65292?\u25105?\u20204?\u37117?\u26159?\u22312?\u19981?\u26029?\u22320?re-practise\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u36825?\u35753?\u25105?\u24819?\u21040?\u20102?Linux\u65292?\u36825?\u31639?\u26159?\u19968?\u20010?\u19981?\u38169?\u22320?\u36719?\u20214?\u65292?\u20174?\u19968?\u24320?\u22987?\u23601?\u23384?\u27963?\u21040?\u20102?\u29616?\u22312?\u12290?\u20294?\u26159?\u26377?\u22810?\u23569?\u24320?\u28304?\u36719?\u20214?\u23601?\u27809?\u26377?\u36825?\u20040?\u24184?\u36816?\u65292?\u26102?\u38388?\u22312?\u28120?\u27760?\u36234?\u26469?\u36234?\u22810?\u30340?\u36807?\u21435?\u24819?\u27861?\u12290?\u20154?\u20204?\u21019?\u36896?\u20107?\u29289?\u30340?\u33021?\u21147?\u20063?\u36234?\u26469?\u36234?\u24378?\u65292?\u20294?\u26159?\u37027?\u21482?\u26159?\u22240?\u20026?\u21019?\u36896?\u21464?\u24471?\u36234?\u26469?\u36234?\u31616?\u21333?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u22312?\u25105?\u20204?\u30475?\u21040?\u30340?\u37027?\u20123?\u36208?\u19978?\u20154?\u29983?\u24005?\u23792?\u30340?CEO\u65292?\u36824?\u37117?\u22312?\u19981?\u26029?\u22320?re-practise\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs32 \u25216?\u26415?\u19982?\u19994?\u21153?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u20110?\u26159?\u65292?\u25105?\u21448?\u20877?\u27425?\u22238?\u21040?\u20102?\u36825?\u26679?\u19968?\u20010?\u29616?\u23454?\u30340?\u38382?\u39064?\u12290?\u25216?\u26415?\u21487?\u20197?\u19981?\u26029?\u22320?\u32451?\u20064?\u65292?\u19981?\u26029?\u22320?\u35843?\u25972?\u26041?\u21521?\u12290?\u20294?\u26159?\u25216?\u26415?\u22320?\u25104?\u26412?\u22312?\u19981?\u26029?\u22320?\u38477?\u20302?\u65292?\u20195?\u30721?\u30340?\u38271?\u24230?\u22312?\u19981?\u26029?\u22320?\u38477?\u20302?\u12290?\u25972?\u20010?\u25216?\u26415?\u30340?\u38376?\u27099?\u36234?\u26469?\u36234?\u20302?\u65292?\u26032?\u20986?\u29616?\u30340?\u25216?\u26415?\u24635?\u20250?\u35753?\u26032?\u29983?\u20195?\u30340?\u31243?\u24207?\u21592?\u33719?\u21033?\u12290?\u20294?\u26159?\u19981?\u21487?\u36991?\u20813?\u22320?\u65292?\u19994?\u21153?\u22320?\u22797?\u26434?\u24230?\u24182?\u27809?\u26377?\u22240?\u27492?\u32780?\u38477?\u20302?\u12290?\u36825?\u23601?\u26159?\u19968?\u20010?\u22797?\u26434?\u30340?\u35805?\u39064?\u65292?\u38590?\u36947?\u19994?\u21153?\u30495?\u30340?\u24456?\u22797?\u26434?\u21527?\u65311?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u20154?\u20204?\u24635?\u20250?\u25552?\u21450?\u20889?\u22909?CSS\u24456?\u38590?\u65292?\u20294?\u26159?\u20889?\u22909?Java\u23601?\u26159?\u19968?\u20214?\u23481?\u26131?\u30340?\u20107?\u12290?\u22240?\u20026?\u27599?\u22825?\u25105?\u20204?\u37117?\u22312?\u29992?Java\u12289?JavaScript\u21435?\u20889?\u20195?\u30721?\u65292?\u20294?\u26159?\u25105?\u20204?\u24182?\u27809?\u26377?\u33457?\u36153?\u26102?\u38388?\u21435?\u23398?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u22240?\u20026?\u25105?\u20204?\u19968?\u30452?\u23558?\u25105?\u20204?\u30340?\u26102?\u20505?\u33457?\u36153?\u30340?\u25152?\u35859?\u30340?\u19994?\u21153?\u19978?\u65292?\u25105?\u20204?\u21487?\u20197?\u19981?\u26029?\u22320?\u23558?\u19968?\u20123?\u37325?\u22797?\u30340?\u20195?\u30721?\u25277?\u35937?\u25104?\u19968?\u20010?\u24211?\u12290?\u20294?\u26159?\u25105?\u20204?\u24182?\u27809?\u26377?\u33457?\u36153?\u36807?\u22810?\u30340?\u26102?\u38388?\u21435?\u25972?\u29702?\u25105?\u20204?\u30340?\u19994?\u21153?\u65292?\u20316?\u20026?\u31243?\u24207?\u21592?\u65292?\u25105?\u20204?\u20999?\u25442?\u24037?\u20316?\u24456?\u23481?\u26131?\u21482?\u26159?\u22240?\u20026?\u30456?\u21516?\u30340?\u25216?\u26415?\u26632?\u12290?\u20316?\u20026?\u19968?\u20123?\u33829?\u38144?\u20154?\u21592?\u65292?\u20182?\u20204?\u20174?\u19968?\u20010?\u39046?\u22495?\u21040?\u19968?\u20010?\u26032?\u30340?\u39046?\u22495?\u65292?\u19981?\u38656?\u35201?\u36807?\u22810?\u30340?\u23398?\u20064?\u65292?\u22240?\u20026?\u26412?\u36523?\u26159?\u30456?\u36890?\u30340?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u25216?\u26415?\u26412?\u36523?\u26159?\u22914?\u27492?\u65292?\u19994?\u21153?\u26412?\u36523?\u20063?\u26159?\u22914?\u27492?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u20174?\u25216?\u26415?\u21040?\u19994?\u21153?\u26159?\u19968?\u26465?\u38590?\u36208?\u36890?\u30340?\u36335?\u65311?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs32 \u36164?\u35759?\u29190?\u28856?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u22238?\u39038?\u21040?\u26368?\u36817?\u20986?\u29616?\u30340?\u21508?\u31181?\u36164?\u35759?\u31243?\u24207?\u8212-\u8212-\u24320?\u21457?\u32773?\u22836?\u26465?\u12289?\u26497?\u23458?\u22836?\u26465?\u12289?\u25496?\u37329?\u12289?\u21338?\u20048?\u22836?\u26465?\u31561?\u31561?\u65292?\u20182?\u20204?\u24110?\u21161?\u25105?\u20204?\u30340?\u26159?\u20016?\u23500?\u25105?\u20204?\u30340?\u20449?\u24687?\u65292?\u32780?\u19981?\u26159?\u31616?\u21270?\u25105?\u20204?\u30340?\u20449?\u24687?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u20316?\u20026?\u19968?\u20010?\u24320?\u21457?\u20154?\u21592?\u65292?\u36807?\u21435?\u25105?\u20204?\u24182?\u19981?\u38656?\u35201?\u20851?\u27880?\u37027?\u20040?\u22810?\u30340?\u20869?\u23481?\u12290?\u22914?\u26524?\u25105?\u20204?\u27809?\u26377?\u20851?\u27880?\u37027?\u20040?\u22810?\u30340?\u28857?\u65292?\u37027?\u20040?\u25105?\u20204?\u23601?\u21487?\u20197?\u38598?\u20013?\u20110?\u25105?\u20204?\u30340?\u24819?\u27861?\u37324?\u12290?\u23454?\u29616?\u19978?\u65292?\u25105?\u20204?\u38656?\u35201?\u30340?\u26159?\u19968?\u20010?\u26356?\u26234?\u33021?\u30340?\u26102?\u20195?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u19994?\u21153?\u26412?\u36523?\u26159?\u19968?\u31181?\u37325?\u22797?\u65292?\u25216?\u26415?\u26412?\u36523?\u20063?\u26159?\u37325?\u22797?\u30340?\u12290?\u21482?\u26159?\u22312?\u26576?\u20010?\u29305?\u23450?\u30340?\u26102?\u21051?\u65292?\u19968?\u20010?\u22909?\u30340?\u25216?\u26415?\u21487?\u20197?\u24110?\u21161?\u25105?\u20204?\u26356?\u22909?\u22320?Re-Practise\u12290?\u22914?\u25512?\u33616?\u31639?\u27861?\u26412?\u36523?\u20381?\u36182?\u20110?\u20154?\u20026?\u23545?\u20449?\u24687?\u36827?\u34892?\u20998?\u31867?\u65292?\u20294?\u26159?\u25105?\u20204?\u38656?\u35201?\u21435?\u21306?\u20998?\u22823?\u37327?\u22320?\u20449?\u24687?\u12290?\u32780?\u20154?\u26412?\u36523?\u30340?\u32463?\u21382?\u26159?\u36275?\u22815?\u26377?\u38505?\u30340?\u65292?\u36825?\u26102?\u20505?\u23601?\u38656?\u35201?\u26426?\u22120?\u26469?\u24110?\u25105?\u20204?\u20570?\u24456?\u22810?\u20107?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs32 \u32467?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u20170?\u22825?\u25105?\u22312?\u29992?MX5\u65292?\u20294?\u26159?\u21457?\u29616?\u19981?\u21450?Lumia 1020\u26469?\u24471?\u23433?\u38745?\u12290?\u21151?\u33021?\u36234?\u24378?\u22823?\u30340?\u21516?\u26102?\u65292?\u24847?\u21619?\u30528?\u25105?\u22312?\u19978?\u38754?\u33457?\u36153?\u30340?\u26102?\u38388?\u20250?\u26356?\u22810?\u12290?\u20107?\u24773?\u26377?\u22909?\u30340?\u19968?\u38754?\u24635?\u20250?\u26377?\u19981?\u22909?\u30340?\u19968?\u38754?\u65292?\u19981?\u22909?\u30340?\u19968?\u38754?\u20063?\u23601?\u24847?\u21619?\u30528?\u26377?\u26426?\u20250?\u23547?\u25214?\u22909?\u30340?\u19968?\u38754?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u25105?\u20204?\u38656?\u35201?\u25682?\u24323?\u19968?\u20123?\u19996?\u35199?\u65292?\u20197?\u37325?\u26032?\u32416?\u27491?\u25105?\u20204?\u30340?\u26041?\u21521?\u12290?\u20110?\u26159?\u65292?\u25105?\u38656?\u35201?\u20877?\u27425?\u22238?\u21040?Lumia 1020\u19978?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs36 Lost\par}
{\pard \ql \f0 \sa180 \li720 \fi0 \u19968?\u24320?\u22987?\u23601?\u36755?\u22312?\u36215?\u36305?\u32447?\u19978?\par}
{\pard \ql \f0 \sa180 \li720 \fi0 \u36755?\u20102?\u65292?\u25165?\u38656?\u35201?\u21152?\u20493?\u21162?\u21147?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs36 \u20171?\u32461?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs36 \u21069?\u31471?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs28 \u20160?\u20040?\u26159?\u21069?\u31471?\u65311?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u32500?\u22522?\u30334?\u31185?\u26159?\u36825?\u26679?\u35828?\u30340?\u65306?\u21069?\u31471?Front-end\u21644?\u21518?\u31471?back-end\u26159?\u25551?\u36848?\u36827?\u31243?\u24320?\u22987?\u21644?\u32467?\u26463?\u30340?\u36890?\u29992?\u35789?\u27719?\u12290?\u21069?\u31471?\u20316?\u29992?\u20110?\u37319?\u38598?\u36755?\u20837?\u20449?\u24687?\u65292?\u21518?\u31471?\u36827?\u34892?\u22788?\u29702?\u12290?\u35745?\u31639?\u26426?\u31243?\u24207?\u30340?\u30028?\u38754?\u26679?\u24335?\u65292?\u35270?\u35273?\u21576?\u29616?\u23646?\u20110?\u21069?\u31471?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u36825?\u31181?\u30340?\u35828?\u27861?\u32473?\u20154?\u19968?\u31181?\u24456?\u27169?\u31946?\u30340?\u24863?\u35273?\u65292?\u20294?\u26159?\u20182?\u35828?\u24471?\u21448?\u24456?\u23545?\u65292?\u23427?\u36127?\u36131?\u35270?\u35273?\u23637?\u31034?\u12290?\u22312?MVC\u32467?\u26500?\u25110?\u32773?MVP\u20013?\u65292?\u36127?\u36131?\u35270?\u35273?\u26174?\u31034?\u30340?\u37096?\u20998?\u21482?\u26377?View\u23618?\u65292?\u32780?\u20170?\u22825?\u22823?\u22810?\u25968?\u25152?\u35859?\u30340?View\u23618?\u24050?\u32463?\u36229?\u36234?\u20102?View\u23618?\u12290?View\u23618?\u26159?\u19968?\u20010?\u24456?\u31070?\u22855?\u30340?\u27010?\u24565?\u65292?\u20294?\u26159?\u32780?\u20170?\u30340?View\u23618?\u24050?\u32463?\u21457?\u29616?\u20102?\u24456?\u22823?\u30340?\u21464?\u21270?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u20320?\u24341?\u20837?\u20102?React\u12289?Backbone\u12289?Angluar\u65292?\u20320?\u30340?\u26550?\u26500?\u21464?\u25104?\u20102?MVVM\u12289?MVP\u12289?MVC\u12290?\u23613?\u31649?\u21457?\u29983?\u20102?\u19968?\u20123?\u26550?\u26500?\u19978?\u30340?\u21464?\u21270?\u65292?\u20294?\u26159?\u39033?\u30446?\u30340?\u24320?\u21457?\u24182?\u27809?\u26377?\u22240?\u27492?\u32780?\u21457?\u29983?\u21464?\u21270?\u12290?\u36825?\u20854?\u20013?\u28041?\u21450?\u21040?\u20102?\u19968?\u20123?\u32844?\u36131?\u30340?\u38382?\u39064?\u65292?\u22914?\u26524?\u26576?\u19968?\u20010?\u23618?\u32423?\u20013?\u26377?\u22826?\u22810?\u30340?\u32844?\u36131?\u65292?\u37027?\u20040?\u23427?\u26159?\u19981?\u26159?\u21152?\u37325?\u20102?\u19968?\u20123?\u20154?\u30340?\u36127?\u25285?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs32 \u21069?\u31471?\u21457?\u23637?\u30340?\u21382?\u21490?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u36807?\u21435?\u19968?\u30452?\u24819?\u25972?\u29702?\u19968?\u31687?\u25991?\u31456?\u26469?\u35828?\u35828?\u21069?\u31471?\u21457?\u23637?\u30340?\u21382?\u21490?\u65292?\u20294?\u26159?\u24819?\u20102?\u24819?\u36825?\u20123?\u21382?\u21490?\u24050?\u32463?\u34987?\u20154?\u20204?\u25152?\u29087?\u30693?\u12290?\u21518?\u26469?\u21457?\u29616?\u24182?\u38750?\u22914?\u27492?\u65292?\u21482?\u26159?\u22240?\u20026?\u20851?\u27880?\u30340?\u19968?\u20123?\u20154?\u37117?\u26159?\u26377?\u21382?\u21490?\u30340?\u65292?\u21518?\u26469?\u21457?\u29616?\u20107?\u24773?\u24182?\u38750?\u22914?\u27492?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs28 \u25968?\u25454?-\u27169?\u26495?-\u26679?\u24335?\u28151?\u21512?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u22312?\u26377?\u38480?\u30340?\u21069?\u31471?\u32463?\u39564?\u37324?\u65292?\u25105?\u36824?\u26159?\u32463?\u21382?\u20102?\u37027?\u27573?\u29992?Table\u26469?\u20316?\u26679?\u24335?\u30340?\u24180?\u20195?\u12290?\u22823?\u23398?\u26399?\u38388?\u26366?\u32463?\u26377?\u20607?\u24110?\u19968?\u20123?\u20844?\u21496?\u25110?\u32773?\u20010?\u20154?\u32500?\u25252?\u12289?\u24320?\u21457?\u19968?\u20123?CMS\u65292?\u32780?Table\u26159?\u24403?\u26102?\u24110?\u26576?\u20010?\u32593?\u31449?\u26356?\u26032?\u26679?\u24335?\u25509?\u35302?\u21040?\u30340?\u8212-\u8212-ASP.Net\u65288?maybe)\u12290?\u24403?\u26102?\u65292?\u25105?\u20204?\u21551?\u21160?\u36825?\u20010?CMS\u65292?\u29992?\u30340?\u26159?\u19968?\u20010?\u21517?\u20026?{\f1 aspweb.exe}\u30340?\u31243?\u24207?\u12290?\u20110?\u26159?\u65292?\u22312?\u25105?\u30340?\u31227?\u21160?\u30828?\u30424?\u37324?\u25214?\u21040?\u20102?\u19979?\u38754?\u30340?\u20195?\u30721?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \f1 <TABLE cellSpacing=0 cellPadding=0 width=910 align=center border=0>\line
  <TBODY>\line
  <TR>\line
    <TD vAlign=top width=188><TABLE cellSpacing=0 cellPadding=0 width=184 align=center border=0>\line
        <TBODY>\line
        <TR>\line
          <TD><IMG src="Images/xxx.gif" width=184></TD></TR>\line
        <TR>\line
          <TD>\line
            <TABLE cellSpacing=0 cellPadding=0 width=184 align=center \line
            background=Images/xxx.gif border=0>\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u34429?\u28982?\u65292?\u25105?\u20063?\u24050?\u32463?\u22312?HEAD\u37324?\u25214?\u21040?\u20102?\u29616?\u20195?\u30340?\u38607?\u24418?\u8212-\u8212-DIV + CSS\u65292?\u32780?\u36825?\u36824?\u26159?\u19968?\u20010?Table\u30340?\u24180?\u20195?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \f1 <LINK href="img/xxx.css" type=text/css rel=stylesheet>\par}
{\pard \ql \f0 \sa180 \li0 \fi0 {\b \u20154?\u20204?\u19968?\u30452?\u22312?\u35828?\u21069?\u31471?\u24456?\u38590?\u65292?\u38382?\u39064?\u26159?\u20320?\u23398?\u36807?\u20040?\u65281?\u65281?\u65281?}\u20063?\u35768?\u65292?\u20320?\u20063?\u19968?\u30452?\u22312?\u35828?CSS\u19981?\u22909?\u20889?\u65292?\u20294?\u26159?CSS\u30495?\u30340?\u19981?\u22909?\u20889?\u20040?\u65311?\u20154?\u20204?\u24635?\u22312?\u35828?JS\u24456?\u38590?\u29992?\u65292?\u20294?\u26159?\u20320?\u23398?\u36807?\u20040?\u65311?\u21482?\u22312?\u29992?\u30340?\u26102?\u20505?\u25165?\u21435?\u23398?\u65292?\u37027?\u32943?\u23450?\u24456?\u38590?\u12290?{\b \u20320?\u19981?\u26366?\u33457?\u26102?\u38388?\u21435?\u23398?\u20064?\u19968?\u38376?\u35821?\u35328?\u65292?\u20294?\u26159?\u21364?\u33021?\u30452?\u25509?\u20889?\u20986?\u21487?\u20197?work\u30340?\u20195?\u30721?\u65292?\u27491?\u26159?\u22312?\u35828?\u26126?\u20182?\u20204?\u23481?\u26131?\u19978?\u25163?\u20040?\u65311?}\u22914?\u26524?\u20320?\u30475?\u36807?\u19968?\u20123?\u26377?\u32463?\u39564?\u30340?Ruby\u12289?Scala\u12289?Emacs Lisp\u24320?\u21457?\u32773?\u20889?\u20986?\u26469?\u30340?\u20195?\u30721?\u65292?\u25105?\u24819?\u20250?\u24471?\u21040?\u30456?\u21516?\u30340?\u32467?\u35770?\u12290?\u26377?\u19968?\u20123?\u35821?\u35328?\u21487?\u20197?\u20351?\u20889?\u31243?\u24207?\u30340?\u20154?Happy\u65292?\u20294?\u26159?\u30475?\u30340?\u20154?\u21487?\u33021?\u23601?\u19981?\u20250?Happy\u12290?\u20570?\u20107?\u30340?\u26041?\u27861?\u19981?\u27490?\u19968?\u31181?\u65292?\u20294?\u26159?\u19981?\u26159?\u25152?\u26377?\u30340?\u20154?\u37117?\u35201?\u29992?\u37027?\u31181?\u26041?\u27861?\u21435?\u20570?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u36807?\u21435?\u30340?\u37027?\u20123?\u31243?\u24207?\u21592?\u37117?\u26159?{\b \u30495?\u27491?\u30340?\u20840?\u26632?\u31243?\u24207?\u21592?}\u65292?\u36825?\u20123?\u31243?\u24207?\u21592?\u19981?\u20165?\u20165?\u20570?\u20102?\u21069?\u31471?\u30340?\u27963?\u65292?\u28982?\u21518?\u36824?\u26377?\u25968?\u25454?\u24211?\u30340?\u24037?\u20316?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \f1 Set rs = Server.CreateObject("ADODB.Recordset")\line
sql = "select id,title,username,email,qq,adddate,content,Re_content,home,face,sex from Fl_Book where ispassed=1 order by id desc"\line
rs.open sql, Conn, 1, 1\line
fl.SqlQueryNum = fl.SqlQueryNum + 1\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u22312?\u36825?\u20010?ASP\u25991?\u20214?\u37324?\u65292?\u23427?\u20174?\u25968?\u25454?\u24211?\u37324?\u26597?\u25214?\u20986?\u20102?\u25968?\u25454?\u65292?\u28982?\u21518?Render\u20986?HTML\u12290?\u22914?\u26524?\u21487?\u20197?\u30475?\u21040?\u29256?\u26412?\u30340?\u21382?\u21490?\u65292?\u37027?\u20040?\u25105?\u24819?\u25105?\u20250?\u30475?\u21040?\u26377?\u19968?\u20010?\u20316?\u32773?\u23558?style=\u8220"\u8221"\u30340?\u20195?\u30721?\u19968?\u20010?\u20010?\u25918?\u21040?css\u25991?\u20214?\u20013?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u22312?\u36825?\u37324?\u30340?\u20195?\u30721?\u37324?\u20063?\u20813?\u19981?\u20102?\u26377?\u21160?\u24577?\u29983?\u25104?JavaScript\u20195?\u30721?\u30340?\u26041?\u27861?\u65306?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \f1 show_other = "<SCRIPT language=javascript>"\line
show_other = show_other & "function checkform()"\line
show_other = show_other & "\{"\line
show_other = show_other & "if (document.add.title.value=='')"\line
show_other = show_other & "\{"\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u35831?\u23613?\u24773?\u22066?\u31505?\u65292?\u28982?\u21518?\u20877?\u30475?\u27573?\u20195?\u30721?\u65306?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \f1 import React from "react";\line
import \{ getData \} from "../../common/request";\line
import styles from "./style.css";\line
\line
\line
export default class HomePage extends React.Component \{\line
  componentWillMount() \{\line
    console.log("[HomePage] will mount with server response: ", this.props.data.home);\line
  \}\line
\line
  render() \{\line
    let \{ title \} = this.props.data.home;\line
\line
    return (\line
      <div className=\{styles.content\}>\line
        <h1>\{title\}</h1>\line
        <p className=\{styles.welcomeText\}>Thanks for joining!</p>\line
      </div>\line
    );\line
  \}\line
\line
  static fetchData = function(params) \{\line
    return getData("/home");\line
  \}\line
\}\par}
{\pard \ql \f0 \sa180 \li0 \fi0 10\u24180?\u21069?\u21644?10\u24180?\u21518?\u30340?\u20195?\u30721?\u65292?\u20284?\u20046?\u27809?\u26377?\u22826?\u22810?\u30340?\u21464?\u21270?\u12290?\u26377?\u25152?\u19981?\u21516?\u30340?\u26159?\u25968?\u25454?\u23618?\u24050?\u32463?\u34987?\u29420?\u31435?\u20986?\u21435?\u20102?\u65292?\u22914?\u26524?\u20320?\u30340?component\u20063?\u28151?\u21512?\u20102?\u25968?\u25454?\u23618?\u65292?\u21363?\u30452?\u25509?\u26597?\u35810?\u25968?\u25454?\u24211?\u32780?\u19981?\u26159?\u35843?\u29992?\u25968?\u25454?\u23618?\u25509?\u21475?\u65292?\u37027?\u20040?\u20320?\u23601?\u38656?\u35201?\u22909?\u22909?\u24605?\u32771?\u19979?\u36825?\u20010?\u38382?\u39064?\u12290?\u20320?\u21482?\u26159?\u22312?\u36861?\u38543?\u28526?\u27969?\u65292?\u36824?\u26159?\u22312?\u25913?\u21464?\u12290?\u29992?\u19968?\u20010?View\u23618?\u26356?\u25442?\u19968?\u20010?View\u23618?\u65292?\u29992?\u19968?\u20010?Router\u25442?\u19968?\u20010?Router\u30340?\u24847?\u20041?\u22312?\u21738?\u65311?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs28 Model-View-Controller\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u20154?\u20204?\u22312?\u19981?\u26029?\u22320?\u21453?\u24605?\u36825?\u20854?\u20013?\u22797?\u26434?\u30340?\u36807?\u31243?\u65292?\u25972?\u29702?\u20102?\u19968?\u20123?\u22909?\u30340?\u26550?\u26500?\u27169?\u24335?\u65292?\u20854?\u20013?\u19981?\u24471?\u19981?\u25552?\u21040?\u30340?\u26159?\u25105?\u21496?Martin Folwer\u30340?\u12298?\u20225?\u19994?\u24212?\u29992?\u26550?\u26500?\u27169?\u24335?\u12299?\u12290?\u36825?\u26412?\u20070?\u35793?\u29256?\u20986?\u29256?\u30340?\u26102?\u20505?\u26159?2004\u24180?\u65292?\u37027?\u26102?\u23545?\u20110?\u31995?\u32479?\u30340?\u20998?\u23618?\u26159?\par}
{
\trowd \trgaph120
\clbrdrb\brdrs\cellx4320\clbrdrb\brdrs\cellx8640
\trkeep\intbl
{
{{\pard\intbl \ql \f0 \sa0 \li0 \fi0 \u23618?\u27425?\par}
\cell}
{{\pard\intbl \ql \f0 \sa0 \li0 \fi0 \u32844?\u36131?\par}
\cell}
}
\intbl\row}
{
\trowd \trgaph120
\cellx4320\cellx8640
\trkeep\intbl
{
{{\pard\intbl \ql \f0 \sa0 \li0 \fi0 \u34920?\u29616?\u23618?\par}
\cell}
{{\pard\intbl \ql \f0 \sa0 \li0 \fi0 \u25552?\u20379?\u26381?\u21153?\u12289?\u26174?\u31034?\u20449?\u24687?\u12289?\u29992?\u25143?\u35831?\u27714?\u12289?HTTP\u35831?\u27714?\u21644?\u21629?\u20196?\u34892?\u35843?\u29992?\u12290?\par}
\cell}
}
\intbl\row}
{
\trowd \trgaph120
\cellx4320\cellx8640
\trkeep\intbl
{
{{\pard\intbl \ql \f0 \sa0 \li0 \fi0 \u39046?\u22495?\u23618?\par}
\cell}
{{\pard\intbl \ql \f0 \sa0 \li0 \fi0 \u36923?\u36753?\u22788?\u29702?\u65292?\u31995?\u32479?\u20013?\u30495?\u27491?\u30340?\u26680?\u24515?\u12290?\par}
\cell}
}
\intbl\row}
{
\trowd \trgaph120
\cellx4320\cellx8640
\trkeep\intbl
{
{{\pard\intbl \ql \f0 \sa0 \li0 \fi0 \u25968?\u25454?\u23618?\par}
\cell}
{{\pard\intbl \ql \f0 \sa0 \li0 \fi0 \u19982?\u25968?\u25454?\u24211?\u12289?\u28040?\u24687?\u31995?\u32479?\u12289?\u20107?\u29289?\u31649?\u29702?\u22120?\u21644?\u20854?\u20182?\u36719?\u20214?\u21253?\u36890?\u35759?\u12290?\par}
\cell}
}
\intbl\row}
{\pard \ql \f0 \sa180 \li0 \fi0 \par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u21270?\u36523?\u20110?\u24403?\u26102?\u26368?\u27969?\u34892?\u30340?Spring\u65292?\u23601?\u26159?MVC\u12290?\u20154?\u20204?\u26377?\u20102?iBatis\u36825?\u26679?\u30340?\u25968?\u25454?\u25345?\u20037?\u23618?\u26694?\u26550?\u65292?\u21363?ORM\u65292?\u23545?\u35937?\u20851?\u31995?\u26144?\u23556?\u12290?\u20110?\u26159?\u65292?\u20320?\u30340?package\u23601?\u20250?\u26377?\u36825?\u26679?\u30340?\u20960?\u20010?\u25991?\u20214?\u22841?\u65306?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \f1 |____mappers\line
|____model\line
|____service\line
|____utils\line
|____controller\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u22312?mappers\u36825?\u19968?\u23618?\u65292?\u25105?\u20204?\u25152?\u20570?\u30340?\u33707?\u36807?\u20110?\u22914?\u19979?\u25152?\u31034?\u30340?\u25968?\u25454?\u24211?\u30456?\u20851?\u26597?\u35810?\u65306?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \f1 @Insert(\line
        "INSERT INTO users(username, password, enabled) " +\line
                "VALUES (#\{userName\}, #\{passwordHash\}, #\{enabled\})"\line
)\line
@Options(keyProperty = "id", keyColumn = "id", useGeneratedKeys = true)\line
void insert(User user);\par}
{\pard \ql \f0 \sa180 \li0 \fi0 model\u25991?\u20214?\u22841?\u21644?mappers\u25991?\u20214?\u22841?\u37117?\u26159?\u25968?\u25454?\u23618?\u30340?\u19968?\u37096?\u20998?\u65292?\u21482?\u26159?\u20004?\u32773?\u38388?\u30340?\u32844?\u36131?\u19981?\u21516?\u65292?\u22914?\u65306?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \f1 public String getUserName() \{\line
    return userName;\line
\}\line
\line
public void setUserName(String userName) \{\line
    this.userName = userName;\line
\}\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u32780?\u20182?\u20204?\u26368?\u21518?\u37117?\u38656?\u35201?\u22312?Controller\u65292?\u21448?\u25110?\u32773?\u31216?\u20026?ModelAndView\u20013?\u22788?\u29702?\u65306?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \f1 @RequestMapping(value = \{"/disableUser"\}, method = RequestMethod.POST)\line
public ModelAndView processUserDisable(HttpServletRequest request, ModelMap model) \{\line
    String userName = request.getParameter("userName");\line
    User user = userService.getByUsername(userName);\line
    userService.disable(user);\line
    Map<String,User> map = new HashMap<String,User>();\line
    Map <User,String> usersWithRoles= userService.getAllUsersWithRole();\line
    model.put("usersWithRoles",usersWithRoles);\line
    return new ModelAndView("redirect:users",map);\line
\}\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u22312?\u22810?\u25968?\u26102?\u20505?\u65292?Controller\u19981?\u24212?\u35813?\u30452?\u25509?\u19982?\u25968?\u25454?\u23618?\u30340?\u19968?\u37096?\u20998?\u65292?\u32780?\u23558?\u19994?\u21153?\u36923?\u36753?\u25918?\u22312?Controller\u23618?\u21448?\u26159?\u19968?\u31181?\u38169?\u35823?\u65292?\u36825?\u26102?\u23601?\u20250?\u26377?Service\u23618?\u12290?\u23601?\u26377?\u20102?\u19979?\u22270?\u65306?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 {\pict\pngblip\picw600\pich296\picwgoal12000\pichgoal5920 89504e470d0a1a0a0000000d49484452000002580000012808020000000bce18d7000036cc4944415478daed9d095c4ed9ffc7af44691a0c8686c69a54a2a414f95111c93296fc9565a6193433bf098ddd58323533d94662c632c61ac6327e2452a41a5191101112998644a4d2fab4fcbfb7db5c8f6749cb533dcbe7fdba2faff39ce73ca7ebde73cefb7cefca94010000002a0c834d0000000022040000002042000000002204000000204200000000220400000020420000000022040000002042000000002204000000204200000000220400000020420000000022040000002042000000b2a4b8acec0096ea2ecfff3e9a9ff30f440800004ac06b767c2eea87a55a4bd461b3a7c927204200005016115ec152bd25ea601f881000002042881022040000881022840801000022840821420000800821428810000020428810220400008810228408010040eec8cfcf5702113e3dc3ac99cdecffe11dc5a800157b761622040000f02f478e1cd9b56b578388d075346366c0981b31af22de641efc89cda4e5455835aa8adbc710d626ef28d6bf375becfa0188100000c0bf0804025d5d5d0f0f8fb743c3fa1021a72562f7ca3799b6e61599e9672042000000f582bfbf3fe9c1caca2a3131b19e45a8a5c99ac9614045cee3d38c9a1aa3d1f42d11526878623db37d19f3d76f4cc9e5b76ab87f9c95e8995f99d8bda2224c0b610eaf62fcbd9887272042000000efc2d4d4940ca1a9a9f9ef61d27a1261cfaeeca2de98c938c7e6fcfc2dd35187e96bf84684411b99d62dd88f6d5ab2ff5af57a23c8833f314d9bb099da5a4c8f4e6f89f0d83ae67d2dd6b2f455330de6f44688100000401582428ec58b170b04afea4d84de5fb37f74db776c0e2970d167ec59434e8499e115fea398af309af96a029b9eecc0967c1d59f1d5211f26f702fb2b6240ef8a08f283e6ac08a9068a0b1babb1671c214200000095211008f4f4f478179a9af64e4cac2711defb1ffb17ed2c983b47d9c48d836f4478ca8f4d74d3ad287fa55cd664384a47fcc6a6dbb592708ef0c47a366da2cf5e234a8b4e6bf66341144408801cc08f32aeaeaef471d7ae5dccdb74eedc59a4244f787838e5d30f45f2b9aae85bf19f7055519d22f9dcb12f1956e5e9e929926f636323adaa870f1fd6a02afa95b4aaa880483e5522dbaaa4ed298955717baaba55d560a7d769fb313636aa3711528222363535c66d3cd34b8ffdc88bf0f7e56c6278ff8af2af222a568fc2410a0489fff49120c21d2bd874eb16cc20b3370b77cb04440840c38b101b01c827c78e1d13b6634e4e7abd1d1aa5c49ad9157fdac7fd2d1172615f9b964c69ec9b2890223c4a3f3ac9a63f685ef1d5b1756f447861478508f3a370d528001021005563e0c0810d75b10c25520299468dd885f4262cc2e2cb8ca93e9b5ef02973792f33a41f9bf6febae2e7465dd98fa3fec3ac746374dbbe39475872b94278e36cd9c3a4a737325e5f555c62031102d0c07087a1009037020303490f7a7a7adc11d4fa17212d01eb596971695e849c23ed2d5947125a9accb2e94c514c45b1405fa6f97b6cbedec715474af9ab469f043313ecd88b5189c66a4cf78e4c6a1044080000400aa4402727a7cccc4ca13cf97ac45aee05365814b98990160a191f9f96faabc268f62642fa17cf1a05405e109a6e032047e1a0afafaf4020783b1b0fdd860801a80394fb1c616e6e6e4e4e0efddbe06b929797575858289249eb565a5a4a5f151515a1298a6c1949d9102144080044584d8c8c8cb4b5b5b5b4b49a356be6e8e8d880469c356bd68811238473ae5ebdfae1871f52d0636e6ebe65cb1634c52a00114284004084d517a1afaf6f7171716c6cacd0c5873260d2a4497e7e7e552f4fda6bdcb8f1e3c78ff99c6fbffd76f6ecd99448494979fb4c1880082142002042998a904b0f1a3468ead4a965e5e79f283e1b3e7cf88f3ffe989d9dcd7d7be7ce9db973e7dadadace9c39535a0ecf9e3d7bdab56b676666461592c628a7a8a8c8c7c787ea7472720a080890b832bd7bf75eb56a15972637530da4674a2f5fbefcdcb9735c7e4141c1b265cbececec680db9755bb46851747434f7ed92254bf6eeddcbafc3c9932721422c10210010619544f8e0c1030ac8366cd8406932d6a143876262627af4e8b17dfb76ae2409cfcbcbebe6cd9bbcc6c47378c8912626266e6e6ea1a1a19cae264e9c686969191414b479f3e6b66ddbeedbb74f7c65684d0c0c0cb83495e4d3c28746274c9840b126996ffcf8f11e1e1e94437fc5dddd9d12cf9f3f575757b7b0b0e04ad2cfaf5dbb0611628108018008df21420a04ededed9b366d4a8e11b90a914c3365ca142eadafaf3f7ffe7ce18b56c47384b1b1b159b3660d974e4e4ee61f1846501c696c6c2cfe9367cf9e3569d2242a2a8ad22e2e2e3ffcf0838808b97a121313f3f2f2c2c2c268e5cbca9faea2a7a74789ddbb77d3dad27fe4e5cb97b76eddeadab52b0e8d6281080100ef1621c56a14ff252424f099919191e42a0ab9ba75ebe6ececcc65929fe8a3aeaeeed1a347a5e5481361707070a3468dc85edcc7c3870f6b6868485c9fb163c752844741e47befbdc71d53151621d5a3a6a6d64588acac2c2a4cfa4c4a4a1a376e5c4848c8800103fefcf34f0a55172e5ca89a22ccbea487a55a4bec319bf487a7204200545784fc39428e7bf7ee91a5ce9c3943e979f3e6f1222c2b3fcfb775ebd6c68d1bf3871cc573248a302e2e8e22b9dbb76f731f7d7c7c489f12d7272020a0458b16bffcf20bc5a97c262fc2f8f878e17a78ecececd6ae5ddbbe7d7b5a9f952b577ef5d557262626972e5d52bdfd49538d2ea13bb0547b79fe28142204402afccb01544484a1a1a1dadada999999a9a9a9f6f6f68e8e8e65e597ae5cbf7e9d335fbb76ed222222c473446a762d87f7a59e9edea2458b0402417a7a7abf7efdb8b37ae25081b66ddbd20af0e7268545487fd4cccc6cca9429dc45a4140b96949450822cd8ba756bced914a7b66ad5aa63c78ea5a5a568bdb584da00561522044085ae1ae520b590ff9a376f4eeadab871a3a6a6e6e6cd9b0b0a0aba74e9d2a14387eeddbbbbb9b995955fbd299223020989c2be9e3d7b262727d3470a190d0c0c2868d3d2d2727272cacaca92b64a73e7cea53ffaead52b711196959f26b4b6b6a6028686869d3a75e2ea494848a0ddf4c71f7f70b26cd9b225771d0da80df9f9f9b4cb14e20ecec4c444dae9dc35c610210010a16cc8c8c8e0122f5fbee4afa0a1388c0647e162e239224e4d4b4b13ce79faf4a94ceed9cf2c078db34ea1c904357e8aceeb59303510b6959515ad2a4dbc9e3f7f0e11020011022003366ddac4bfe9b09e05535d9c9d9df9551d356a144408004408406d494c4cd4d4d4648470727292cf55ddb56b17f3363e3e3e1021001021003547201070471a45f0f7f797b7554d4a4a6ad9b2a5c87aaaabab474646428400c878ca898d005407777777d2499b366d3c3d3d294152193b762cd945de4e16f2c2363030a04e9a9f9fffc71f7f989a9a528e8e8e8ec8c969881000004095d8b2658ba6a6a6878707f79a27fe704878783859870423e5f54f0d80b3b333adcfa64d9b441e874491ab9e9eded0a143c55ed60811025053685e8c8d0054018aa27c7c7c2ab921efecd9b372728084e25452a0b09585eff72505527478ecd8318810001935779c230400fd142204e86000a8200af45825881000881000956efc102100180b008008214200204200204288100099636363838d00204239a7fe2f6785080100002254ed8d834d005487f0f0706c04a09a28d06395eaff7e5f881060520c0050e97e8a7101a08301a0fcb8babaa29f4284004084008d1fab0a11028c0500a0f16355214280b10000347eac2a440830160080c62f8fd4fffdbe1817800af1f0e1436c0400110288100000540e05ba6ab4feeff78508810aa1406fa20100c12b440880327430005436cc820801400703008d1f22040063010068fc102100180b0040e3870801c05800001a3f44084043a3406fa20140654558fff7fb428400000011aaf6c6c12600aa43fdbff01300505deaff7e5f881060520c0050e97e8a7101a0830180300b2204002204008d1f22040063010068fc102100180b0040e38708015052eaff859f004084d5a5feeff785080100002254ed8d834d005407bca11ea82c0af458a5fabfdf1722049814030054ba9f625c00e86000283f0af458255511616969e9cb972fa3a3a3fdfcfc264d9ad4af5f3f2323231313134a585959f5eddbd7d8d8b84f9f3ea3478f5ebe7c797070706a6a6a7171319a3280080150fac6af1222cccbcbbb79f3a6afafef902143487e63c68c59bc78b1bfbfffd9b367636363af5dbb16191979ecd8b1d5ab57bbb8b8f42b67c182059499999989d60c2042002042c516617676f6e9d3a79d9d9d7bf6ec499e3b72e4088586d20abf7efdfafcf9f373e6cc3133331b3468d0efbfff9e9e9e8e060d20420020424515615656d69f7ffe696f6f6f6161e1e7e797969656c55f51803862c488be7dfbae5fbfbe8abf0200220440111b7ffddfef5b7f9b263737372020c0d6d6b67ffffe870e1d2a2a2aaafa6f4b4a4a626363ffeffffeaf57af5ee4c24a8248002a01b74f009141a95a0351e51c387080462759d5969f9f1f1d1d2dc3793f66810d2f4232d9a54b97c68d1b47519dbfbf7f0d1a5f6969694c4cccc89123cdcdcd0f1e3c281008b0f30000b5c1c8c868ddba75b2aa6dd1a245e3c78f974955dededeeddbb71f346890b6b6f682050b1434cc52a0096b3d89f0e9d3a72b56ace8d1a30735bb8282821adb3438389844f8c9279f242626a21b03251e0b80ca8a9046cbf7de7b2f252585d234e357c19341ca798eb0b8b8f8d4a953969696cecece494949b5a92a2323e3a79f7e32303058bd7a756161217a3290f30e06144e844545453e3e3ec3870f7772720a0808e0f303030367cd9a45f93ffef86376763697999f9fbf64c992a143879205e95b89229456e1f2e5cb43434369289b3c79b270f92b57aea8a9a989cff5c557e0fbefbfa7d8802f40b1637c7c3c451acb962db3b3b3a3c2fc7a12e1e1e1e8a70d29429ae0d08ee9d5abd7ce9d3b6b5fdbc58b17691f8f1c39124121800881cc453871e2449ab50705056ddebcb96ddbb6fbf6ede3f24966870e1d8a8989e9d1a3c7f6eddbb94c3737376b6b6b72ccfefdfb757575258a505a85e6e6e634a79f33674e484888c84feceded5bb66cb97bf7eed2d2523e537c0556ad5a458321f76d424242ab56adc88213264c98346952747434ad8c87878722367ee514616464e4a04183c68c1953cb7090e3f9f3e79e9e9efafafa7c5b0400220432116172723235123e789a3b77aeb1b1b1c8afc82e53a64c292bbf70a15dbb7634be71f9120f8d56522189908236892b565c5cfcdd77dfa9ababd3b0297eff34bf02fffcf30f95e10ea27a94c3fd390a12f2f2f2c2c2c2e83f0811ca8508698f1e3870a05bb76ef3e7cf97c9d361a8f1d1b4a86bd7aed4a470741440844086220c0e0e6ed4a8115984fb78f8f0610d0d0d7e424f630ea98e4633676767ca898d8da5c2b9b9b99588b0920a49845bb66ca964f5ae5cb942031d1ff389af00317cf8702f2f2f0a045bb76e4d4121fd393535b52e4264656541840d2fc2ecec6c8adff5f4f4b66ddb26ab3acf9f3f6f6d6d3d61c284c78f1fa333038810c84a84717171d4486edfbecd7df4f1f1d1d5d5a5c4bd7bf7486067ce9ca1f4bc79f3380f512615e6023269229456615544481c3b768cc446a3a8c415282bbf678346d7fdfbf70f1830803ec6c7c70bff39056dfc4a28427215edb63e7dfa1c3f7e5c56755ebb766decd8b10e0e0e34034267065547819e3b0c1a4484454545e415529a4020484f4fefd7af9fbbbb3be58786866a6b6b676666a6a6a6dadbdb3b3a3a72e5a9f0e2c58b29200b0f0fefd8b1a3b808a555588908efdebd7bf5ea55eeece0b265cb747474282d6d0528d66cdebc79870e1db8b72c1517179b99994d9932853ba04a062d29295138112ae1ed13c9c9c95f7ef965fffefdcf9d3b27ab3a69be437bdad6d6f6d2a54be8cc00801a8bb04993265affc2cd93689e6d6060d0be7d7bca717272e20e2d924e483fa41cb2dac68d1b353535376fdecc0564cd9a35a3586dd8b061b367cf9678b18cc40a2b11e1e1c387a97ef21ffd8a46b9f3e7cf57b202c48c19335ab468c11fa1a521d7dada9a0a181a1a76ead449110f8d36400c5ad77f20292989f6d3c08103fffaeb2f59d579e7ce9dcf3efb6cf0e0c1515151d88500112190394f9f3ee5d5c2939191c1255ebe7cc93fd3a3b0b090cfaf6e85d2a0c08ee242f14768495c01896496d3b061568d51c247ac3d7af468d6ac59161616414141b2aa333e3e9e265643870ea5a9167a2ca84673c7a41800f4d3fa17214d61681a6e6464c4df3d537b626262ecededc78c19f3e0c103341a001102f04e3a77ee8c7eda60222c2c2cdcb66d5b972e5d7ef8e107e19b436bc3c993278d8d8dbff8e20bfef03700102100cad1f895f386fae0e0605353d3a953a7be78f1a2f6b5e5e5e56ddcb89166376bd6ac41e30610210010a10288303131f1b3cf3eebdfbfbff893846ac0eddbb7c9a956565667cf9e45e30610210010a10288303f3f7ff7eedd4646460b162c78f5ea552dabf2f7f7373636767777af65554005c1db27004428ffd4ffd5ddf5b469121212264f9e6c696979e2c409fe06cfea525a5a7ae3c60d1717170a0765780d2a000040842abd71eae7cf1415151d3d7ad4d4d474d2a44924c59ab9f0c993275e5e5e8686862b56acc8c9c9c1ce03d5056fa8072a0bf7e81944840d2942222d2dcdc7c7c7c8c8e88b2fbeb87dfb76b55c48b1e0d3a74fd7ae5d4b3ffffcf3cfefdcb983660d30290600fd54c144c8cdc7972c59626c6c3c63c68c2b57ae54f1390b85858549494924510a285d5c5c626262d050004408809c875910a15452525256ae5c494a1b3972e4be7dfbc870050505d20a1715153d7efc382828c8cdcd8d6241575757d2271a3480080150e2c6affc2224d2d3d377ecd8616f6f6f6262f2f9e79fefdfbf3f2a2aeace9d3ba9a9a9f4d5b367cf487ec9c9c957af5e3d7efcf8a2458bacca59b162058e8802881000885019445856fe48d95bb76e797b7b0f1d3ab477efde03070e9c3c79f2dcb9732978f7f2f222f9cd983163c488117dfaf4193060c0ac59b3c2c2c2f8375b0200110200112abc08390402415252d2eeddbb3d3c3c468f1e6d6161d1ba756b6d6ded5ebd7a39383850b0e8e7e717131353f547b603001102a0e88d5f09df3e51154a4b4bc97621212143860c313232dab16347666626458d68bb40b6e0f609001102391521475c5cdc98316364fb2e7b000000650af55825257c433d440830160000e439788508013a1800ca8f029d1780082142001102a0d28d1f22840801c6020020428810220410210010214408004408004408110245647e59996b59999d1c2e9e9e5de473c59e24cdbc7f659d6a348f876565e3e5732fc8f31217343e37eba18a8810b74f40844a805d59f688b227fdb0547d49bee070fdcc0cd5681e37cb4a3fc61eafee12fafbc7d9193771380422048a2342eaba57182c555f92c306ab9608b1d3abb9d45e840a74fb848a3e620d228408214288104b9d8a5091e2339c2384082142881022c42273112ad06395144384d9d9d9197540585898838343af5ebdfcfdfdeba2fecccc4cbcc8022284082142d51421ae1a95b1088f1c39f2531de0eeee6e6868d8be7dfba953a7d645fd3b76ec387ffe3c34051142841021440811d656840b172eec5f07f4eeddbb55ab56efbdf79e8181415dd4efeaeafafbefbf43531021440811428410616d4598929272a30e3874e8908d8d0d59d0cfcfaf2eea4f4a4a4a4f4f87a664824020c8c9c9a92311165f6ef87167ff0fcc9ad9ccb3b3a26988b0ea486921752bc2d25876916d9d8f4f33c9014c613444584f787a7a2a8008eb085c2ca358cc9f3f3f32325286224c0b61a67fc2f4e8c4345167349b32fa1d99a1fd1a4c8afd7bd3b8c15c3f209a8608ab4e6060208d683467aa1f115edac3b69fb6add8c643ad68eb7775d2182042a504220435842ca8a9a9b96bd72e998830fe0fa685363bdc8cb3657e5fcefcb69499319631d16704976a3e76ecf562a6393271fb20c206434f4fcfc9c9293333b3ae45987e8669fe1ed3588df1fe9ad9b98235a2df7c99554e0dd2d38d797a46b14558ff61568d9134aa4084405ea1318e0ce1ececfcfcf9f3da88b03496b1346665b3e053a9655e843127d633db97317ffdc6945c7e2b0e38f32b93739e490d628f61fe7dea5fb50430d6266c9d3f7dc35cdcf956c9bbff630ef9bca3da4a444891ebe1558cbf17f3f08484d510ae1c22a4a090361de9303c3cbc4e4518bc89dd471646520f36bc73975dddcf7e7c12fca600ed716e16c597e4f25f4530411b996ddf3181be6fca4bfc13b88f505182578810d49ca4a4247575756ab53a3a3a42235db54578ff383b8a355167b2fe925c80c69dd62dd8326d5ab2ff5af56223006163ad99cd6834651314135061ca27ff519ad06cca981bbd29b96226d3a811d3a57d95aa1517e1b175ccfb5a8c9626a3adc534d3604e6f7cabbc70e51021878d8d0d53cebf8749eb44842fc3d8f6431b7fc9e7a227f3aab8cba80911144a72df16c5b047597ff8af680308f985cd27a84efae162d7cafe0422428810225409281ce48639a1c3a4d516e1293fb606bd8f257f9b195e212a9a95d318f7d504363dd9e1ade14cb72d1b137cf7059b9eea58f1d5385bf623e58b94dcebc55cd851a56a454448e1e307cdd9218f7c49110089d6cc4072e51021cfe9d3a7997fa1d69299195547e708fde633ea8dd9bfd2b503ab2b3ee2afe22ea36fe9e764322ef2fbdf5a464d8d3dcc20dc00a8cd7cf8019b5e3f9729886243432a50c99fc0394288501e45487322e66db8a72d3c7cf89011837b341f3f9fe5e1265632ac8afc2192dfb97367695571815775abe2da96c4aa5c5d5d45f229a7ba55f18c1a352a337350754548830ed1a353659aeca65bf1f18a7fc57c5c78380bddcca62fef65d3034d2b1361d8d66a542b22c213ebd984893e7b0c96169dd6ec471a10c52baf8108bf9a66a6ac8d5347474728dd26f27cdb3a3a91463ea31dcae13b97cda9d62e1b3d88cdd9b1824d8ffa0f3362806863e0da4cfb0fdfba30b5923f215b112e59f8752d772b440811823a9fef5350b876ed5a81c0b6ba22bc7598fd79d3264cde45c9972a10c3fbbf3943c3f13a52d45871fbde2d42fe545fd5abe5d3344412ad5b3083ccde2cdc6d15b5bca0468923428140a0abab2b34551a9cf6a47ddd5d544206e2827b8ad28a62aab7cb8ead637328fff16936b03bb25ab4e5706d6648bfb7fe62257f02e7082142885025e0a79c34eb8f8d8dadd9a1511ab0ba76288f42dc247c1bf15bc5693c6e1ace7da479b7b8de444438c18efd78fc67c922ac7ab57c9a020e6ec8cb8f92f115f64a2c42e198d2c7c7a71e6ea8a7e914777af8f691eaed32eebc2031cd916d18fcb946be24d748349bbeb970860b43a5fd0988b066f0079f2042a00084878773039c8383435a5adabfd935b97d82e2b6468d2aae5608dac88e385e5f317616ec5579c5971953fd8a6b4a2fef65e7e384f7d7ef16e1c605ecc7b136ec0581e2035fd5abe5d325972bd2146b9e58cf5e13412bc95d5f03114a0b07f5f4f4b879d2d9b367cbf3ea448491bf33b39d99a36b981b0799459fb1fbe2a336ecbd37d5dd6573a75438db63b20465529be9d3834d0fb3624f2d53433dbbb9b23f01112a4c0c0a11821a636a6aaaa9a9b965cb96b76f9aaee10df534b3eeddfdcdf90c9a9bd370f3228cfd2a2590b1b7ac30a59626b36c3a3b797fa7089f9d6555aade98bda054e2c057c56a85d324660a34b98b3228ece8de51f47a0a8850185f5f5fda2c4e4e4e42f3a43a112119484dada2e57cd09c9938f4cdfda3d5da65370f5554420989b123b599e1fd2bfe16d5f9dd1795fd0988b066e00df510a1c270ecd831a1c3a165b51721b7649f678730e1dbb9f825f702f3e8e45b77fb5565c90c67ebaca4400daa2d8c666f1793e133b7945284f9f9f9d442c41e2e535787466912931c5011b7d5f52ecbbbc81a51e4690f326f15384708110279c7c7c747689a2f3311e2a1dbca345512babbb4ce4588876e438410a1dc919b9b9b538eb23656b167484284f52d42be8d719494942842c38108214288506544686464a4adadada5a5d5a953a76fbef9a6b8b85865624588b09e44c8b5b1b6ff22e9303544081142841061838ad0d7d797fc171111a1aeae1e101050ffeb3069d2243f3f3f88508945b86edd3a456b4b1021440811aa9808b9748f1e3dbefffe7b2e5d5050b06cd9323b3bbb59b3666567677399f9f9f94b962c193a74e8a2458b76eedcc98f38df7efbeda54b97b8f4e6cd9bf7eddb57492577eedc993b77aeadadedcc9933e9e39e3d7bdab56b6766663675ead494941488501544f8e4c99369d3a6c5c7c7731fa92bad5fbfbe9236535454b476edda9123470e1b366ccd9a35d29a9c785b92581b440811428410a1e488f0c8912314115ebd7a95cb9f3061024daea3a3a3c78f1fefe1e1c165bab9b9595b5b878787efdfbf5f575797bee2f2bb74e972f8f0612e3d65ca14bebcc44a48815e5e5e376fdee4a24ff2a2898909d51c1a1a5acda10a22541811d2d4e77a39a9a9a95ce6d2a54bbb77ef4e7b9c727474746edfbe5d499b717272a2f6b665cb16925f484888b42627de9624d6061142843241d2355610a1c28af0e38f3f6edebcf9fbefbfcfbfc036393999263b8989897979796161615486324b4b4b69bacd97a1a0b072114aac84d0d7d79f3f7f3ecdf1f975b0b1b1e1a6f93834aaac22a41632b09c55ab56719934f7a229d1c48913ededed7ffef9e74a1adefdfbf72973fbf6edc2754a9b7b09b725692d102284081535068508eb4e840b172e3c73e68c86864660602097191c1caca6a6d64588acacacd8d8d8468d1ae5e6e6565184122ba1fca8a8a86eddbad104ffe8d1a310a12a9f232451518b323535e5af2395d86628937c2672d8bc2a2294d6022142885026700f13870895ea1ca18f8fcf871f7ef8f4e9534ac7c7c7b38f40fcf76815c7bd7bf784c72311111e3c78904b8f1e3d9a1b952456c29ff2d9ba756be3c68daf5dbbd680227c143732e1d4602c555fae9e189a7861a9ac44e8eaea3a7cf8f066cd9a454747733912dbccf5ebd729f3e4c9932222146f72226da9921658151116e57f8c3d5edd25fa886df68b5b384708112aaa088b8b8b2d2d2d1d1c1c4a4b4b296d66664613edcccc4cfa2a3b3b9b9bb3ebe9e92d5ebcb8a0a0203c3cbc63c78ebc08870c19425e2c2c2ca431485353931b952456429934ae712e6cd7ae5d444404372072ef54aa5ff63fbeeb77efd28f72b8cc9a61279f2b464bfa83533211e1be7dfb7af7ee9d9f9f4f6de6e38f3f7efefcb9b4364350d4486decd1a34794f9f7df7f4b6b72226d495a33ae1acf8a0ad6c9ed5e90e7a530ef194408112aaa0889c4c4441a53b86b41939393adadade9a3a1a161a74e9db8634a070e1ca0f9bb8686c6b061c366cf9ecd8bf0c489136ddab469debc3965bab8b8f0a392782524519acb77e8d0a17bf7ee6e6e6e5cb1a8a8285d5ddd9e3d7b52799c062853a8779356b18d3569d244eb5f56ad5a75efde3d1d1d1d6a6f65e5e79e29a4a3d090b394c48647e54969eaeaea3479727474aca4c989b42589b50100114284d520b31ce11c9a83676464881c1ae5f25fbf7e5dc54ae8238502c23934084a79101a3a982a22de66d818edd933fe1475254d4ebc2d49ac0d00881022ac2d222204102100e8a710a16a111d1d1d1c1c8cce001102a09a787a7a428478fb04800801001021007540fddf9f0400a82ebb76ed525d115ebc78d1d6d6d6d0d0d0dfdf1f4d01000054343e53d97384af5ebdfae5975f3efae8a3162d5a7cfdf5d78f1f3f466b0032e7e1c387d808004084f228c267cf9eeddcb973e8d0a116161683070fb6b2b25ab162c583070f4a4b4bd12680427730000044f86e9e3f7f4eb1a0b9b9b98b8b4b4c4c4c4a4acaf2e5cbfbf6ed3b77ee5c9abfc38500220400fd5469454892a35870cb962dd6d6d69f7efae9952b57b8fcc78f1ffbf8f8505cb860c182fbf7efc38500220400fd540945585252f2cf3ffffcfcf3cffdfaf59b3e7dfa8d1b3784bfe55c485fcd9a35ebf6eddb0281008d03408400a8029d3b775609119205535252bcbdbd4d4d4d67ce9c999090205ee6c993276bd7aee53479f5ea55b8104084000025112167c1152b561819197df5d55795bccc252323e3975f7ee9d3a7cfe4c993e14200110200944184c5c5c50f1e3c200bf6ecd9f3cb2fbf7ce72bcdd2d2d2d6ad5b478123b9303636b6b0b010fb0cd418dc3e010026ac0d2c42b2e0fdfbf7972e5ddabb776f0f0f8fbb77ef56e557e9e9e91b376ea4b8d0c9c9292a2aaaa8a8080d0500002042c51321098ce2bf850b179205e7cf9fcfbf90bd2a646464fcfaebaf666666e4c20b172ee4e5e5a1ad801a8047ac0100113698082916bc75eb96bbbbbbbebefeb7df7efbe0c183ead6f0e2c58b6ddbb6910b1d1d1d4343430b0a0ad05c80fc7730000044c85258589890903067ce1c0303038a086b60418e972f5f6edfbe9d5c3862c48873e7ce09bf4a1400881000f45339152159f0ead5ab3367ceecd1a3c7e2c58bfffefbefdad4462efcedb7df4c4c4c860c19121414041702881000f453b916614141c1e5cb97bff8e20bb2e0ca952bd3d2d26a5fe7ab57aff6eedd6b6161616b6b7bfcf8f1ecec6cb41b001102a0348487872b8f08c982d1d1d1d3a64d333434fce1871fd2d3d3655533c9ef8f3ffeb0b4b41c3060c0e1c387b3b2b2d07400440800902f11e6e7e75fb870812cd8a74f1f5f5f5f0ae3645b7f5e5ede891327060f1e3c68d0a083070fc285a02a787a7a62230020e7b8baba2a83087373732322225c5c5c4c4c4c366dda24730bf2ae0d0a0a1a3264c8c08103f7eddbf7e2c50b3420000050f8f84c09ce11be7efd3a242464dcb871e6e6e6dbb66dabd3eb590a0b0bcf9c39336cd8300b0b0bfa5b1919196843001121001061438a902c78faf4e94f3ef984ccb463c78e7ab8f35d201050f43972e448fa8b5bb76e455c08e4aa830100544b8464c1a0a0a051a346595a5afafbfbd7dbf35f8a8b8ba3a2a22806e5e242b810408400a09f3680087372724e9d3a3566cc98fefdfbefd9b3a79e9ffc422ebc78f122b9d0caca8a5cf8fcf9733426001102807e5a7f22cccece3e71e204c582b6b6b67ffef967833c17bbb4b4f4ca952b2e2e2ee4c25f7ffdf5d9b367684f00220440e150c8ab465fbd7a75f4e8514747477b7b7bd22105670db5f9c885d7af5fffecb3cfc8857e7e7e32b97f1f40840000251f196af9fbacacac83070fdad8d8d8d9d905040434a0057917c6c7c7d384a26fdfbe6bd6ac810b813078fb0400f2cfae5dbb14498464c143870e0d193264e8d0a1c78f1f97933705f27121b970f5ead57021000028527ca640e7083333330f1c3840167470703875ea945cbd2f975c78e3c68d193366989b9bfbf8f8a4a6a6520e9a17c01bea0180086526c2172f5e50f43a78f0e0d1a347878484949494c8e1d6bc75ebd6975f7e4971e1f2e5cb6904840b01ce1102807e2a1b11522cb873e7cefefdfb3b39399d3f7f5e3e2dc871f7ee5d0f0f0f3333b3050b16505a2010a091a1830100d04f6b2b422e169c306142545494fc6fd3e4e4e4850b17f6ecd993a2c3888808343274300000fa696d45e854ce5f7ffd25cfb1a0880b2922b4b2b2727171412343070300c8339d3b77560011ae59b3263030506e37625a5adadab56b4532636363972e5d8a672e4384d8080000198850ce193a74288d77f2ac6a0011020020c2bac2dbdb9b29475b5b3b2929093b1808237efb446e6e6e4e4e4e9dbe2c0c0020e71356a512214581eaeaeaccbf989b9be7e7e7a355814a303232a23993969656b366cd1c1d1d614400204205263535b54d9b36ccdbb8bbbba355011ef147ac91087d7d7d8b8b8b636363353535ebedd94e93264df2f3f3c31e01002294190281c0caca8a361f4584aeaeae94303636e65c78ecd831342c20ad837122e4d283060d9a3a752a25962f5f1e1a1aba7af5eac99327d3c782828265cb96d9d9d9cd9a352b3b3b9b2b7ce7ce9db973e7dadadace9c3993cb91588caa3a77eedc9e3d7b468f1eedededcd459cf4b15dbb76666666f4e7525252b05f00800865000d40b4ed6858e1ce0b72db9114a8abababadad9d989888b6052a17e183070f1a376ebc61c3064a9b9b9b1b1818cc9933272424843e4e98308102b8e8e8e8f1e3c77b7878703f24057a7979ddbc7933202080cb91588caa3231317171713970e040c78e1db98893244a996e6e6ea45b5e99000088b0e61c397264ecd8b1b1b1b1e2db313f3f7ffbf6edf46d4e4e0e9a179028420a04ededed9b366d4a26e39e3d44f6a2a88e2b909c9c4cbfa2b9545e5e5e58581895e7f2f5f5f5e7cf9fcf3f62575a31aa6adab4695c7afaf4e9fc8bd66c6c6cd6ac59833d020044281bc4df472f723f268d6e78673d9026c28913271e3a7428212181cf247b6dd9b2854b070707aba9a97511222b2b8bf2a3a2a2ba75eba6abab7bf4e8d14a8a09574572e5a5081102208df0f070e514a1b3b3f3ead5ab8573cccccc6edcb8815d0e1a5c84fc394289228c8f8fa75fddbe7d5bbc360a07b76edddab871e36bd7ae492b061102a0002343fdfc19131313910b3869d4888e8eaea33f87b7ed0089883f5ae89d222c2e2ea649db942953323333e963767676494909655ebf7e9d7361bb76ed2222222416ab4484aee5608f00204efd770db910615656d6c993276934e18e26f199212121919191c26fbd4f4e4e7ef4e8914020f8ebafbf9e3e7d5af5893f001279a708b956676d6dada9a9696868d8a953276a990505055dba74e9d0a143f7eedddddcdca415ab4484515151bababa3d7bf6a45f612f00d0b00378c38b70efdebd34a71e3b762c0d19fc057857ae5cf9e8a38f6858d1d1d119366c18ffab3163c6b8b8b8f4eddbb773e7cee4428810548bdadc2698598e488ef8131bc48b498342c6b4b434ec140020c232b2daba75eb4406885ebd7a7df7dd7794cecbcbd3d2d2ba7bf72e2f420d0d0d0a1fe56d3b027430000044584311ce9c3993c2be1d3b76f06fcde5ae445fba74e9ee72ba75ebf6cb2fbff022e46e79c67807204200d04f154984fdfaf5fbf2cb2ff98fc5c5c5f45f8d8b8b2b2bbfdc60e5ca95efbfff7eefdebdb9eb484990f4edc4891367fccbdebd7b79114e9f3e1de31d800801403f5530113a3939393838f01f535353e9bf2a7cb54b4646c6c08103478f1e5d567e5f207dbb69d326f17a2042001102a0dc28ed55a3bb77ef5657573f7cf830c57f2f5fbefcef7fffdbab572feeab13274e6467679796964e2b87cb9c3a75aabebe7e545414a55fbf7efdf7df7f574b84f57f3f26800801008a3a32d4cf9f2929297177775753536bd3a68d868646d7ae5d2f5fbecc7dd5a74f1f4d4dcdf6eddb0f1a34e8debd7b5c665656d6a79f7e4aeed4d1d169d1a2c54f3ffd542d1102201191470e0100e410a57db20cafb7b8b8b8fbf7ef0bdf1a5856fe72d4172f5e88972f2828a0589082c5eafe21f1b7ed000000508cf80ccf1a55d0ed0814023c7208000ce0102140070300a09f4284001d0c00807e0a110274300000fa294408d0c1000010a13222feb61d00204200800a891000881000a0d222accddb76801283470e0120ffd4ff832f708e100000804a0fe010215021f0c8210030804384001d0c00807e0a110274300000fa294408d0c10000e8a74a2b42bc6d074084002828f57fd93fc60500110200547b64c02600aa031e390480fce3eaea0a1162e20f00002a1c9fe11c214408ea0e3c7208000ce0102140070300a09f4284001d0c00807e0a110274300000fa294408d0c10000f205ae1a950d78db0ea8a208050201360b00aa3e3260130065253030d0dbdb3b333393cf117ee4505a5adab265cb222323b1a10050f14846394558ff9135904f468d1ad5a64d9b5dbb76e5e7e7f399393939bebebedadada24426c2200e42e3ec3394205dd8e403e21ff191818507bd0d1d159bb766d525212c9af65cb969463636383e3a2006000870881f2939898a8aeaecebc0db9302d2d0d1b07000ce010215009281614b62079313030109b05000ce010215021c68e1dcb8bd0dbdb1b1b04000ce01021502d040281a9a929350c0707079c1a040003b8f28b10578d0271626363f5f4f49e3f7f8e4d0100507e118206657a59d9b8b23263395c72728ce473c5fe499c7427ca134d0700885066e06d3b0d8a5dd94bfbb2949e58aabe24470ebf7e66069a0e00656f3ff80222acc5ff0ae7081b56844ffa955d61b0547d490e1b0c1102d0500338440820428810008810db1140841021001021b623800821420020426c47001142840040848a4ffd5f740420428810009950ff97fd2372024a2bc2c7a799e400a6301a2204004084404945386f2a6366c0fcb6f4adcce85d6c66e29f4cffdeec9345af1f80080150243c3d3d214259fcaf708e503544b8ff075675c6dddeca741bcf7469cf94c632bf2f673cdd98a7672042003080438440494598779169fe1eebc2b87d153985d1cc07cd99a55fb0e94b7b9833bf3239e72bbe4a0b610eaf62fcbd9887272a72284105289ffbc895e7d2af23d974f6798810008810db11c8b10869f9620c2bc2d9ce151f8fad633f26fec9a6850f8d52fefb5a8c9626a3adc534d3604e6f64334f6e600b2c7665d34531154e4d38cc7edce7cd683665722f4084004084d88e40be45f8d76facbd3efc8035197d9c60c79e20e4bee245f8228c0d134984e967d8f8afb15a45190afb9a36614cf5d974e8e68ab7156e98c77e9c348c193100874601800815793b12e1e1e165e5af6462de867b49137dcb88c1fdbc73e7ce22f9dce5bc32accad3d35324dfc6c6465a550f1f3eac4155f42b69555101917ceeecb48caaea529f222c8d65cf081201eb9957118c465366fd5c51119e58cf264cf4d9738ab4e8b4663f1644b165ec2c98468d583bce7161fed3870d16470e649dda429bf97551bd8af0ab696672b61fd9aaa88d89e473f72649ac8aeb71d5ad8aefb0e25549eb7132ac0ae3807cb61f88102022acdeb26226db8bc6dbb157c750b4f7245854843b56b089d62d9841666f966767d932ab67b35fed5ec974d365fce633f696ecb1d3d31bd9cc9440448400a8460c8a4d00145d84f78fb3de6ada843de04926e3f379115ed85121c2fc28d1dfd2b704fd90480ea8f0a2b911d34b0f578d02001102a02022a4c5daa4e2e80ac576e2222cb95c911e67cb1e26a580cfeb2bf67c21578c3b526ad8854dc7edaba867c9e71021001021008a23c2df96b2f66aa6f1d60d0fc2578d3e0966afa3516fcce6345663ba776452832a8a7d3a92cd5cf0299b266552e0485cdc091102001102a03822ace25218cdde3b28870f5d8308018008014488876e43840040840a426e6e6e4e39d814102144a888fd2e2f2fafa8a8a88e564f201060674184ca8f919191b6b6b6969656a74e9dbef9e69be2e2626c1388102254a07e676e6ebe65cb96ba58bdd6ad5b3769d2a46bd7ae3366cc78f5ea15f61a44a8cc1dd2d7d797fa61444484baba7a404000b609440811ca55bf9b3469929f9f9fb46f53525232333365be7aebd6ada304c59a7171717dfbf6d5d7d7cfcfcfafd91a028850313a2497eed1a3c7f7df7fcfa50b0a0a962d5b666767376bd6acecec6c2ef3ce9d3b73e7ceb5b5b59d39732697b37cf9f2d0d0d00d1b360c1f3e9c26b67c87a4fee3e3e343994e4e4ec29d9cca9f3b776ecf9e3da3478ff6f6f6cecdcd9556b3c4158008214255eb77d459dab56b6766663675ea54721edfe956af5e3d79f264be4f49fb39d51c1c1cccffdd050b16c4c7c7bfb373f122e4888d8d651866d3a64d940e0c0ca45f51d7fef1c71fa5ada1781900112ac6ccf4c891233433bd7af52a973f61c2049ae54547478f1f3fdec3c383cb2451797979ddbc7993779bb9b9b9b1b1f1bc79f376eedc49fdf9d34f3fe5f2274e9c686969191414b479f3e6b66ddbeedbb78f2f6f6262e2e2e272e0c0818e1d3bf2ef6e16af59e20a408410a1aaf53b9a23529771737323f97152a14e6460603067ce9c9090109143a3e23f5fb56a15098ffb362121a155ab5664c177762e111112bababad3a64da3044d700f1d3a14131343fd7dfbf6ed12d750bc0c8008e5bd437efcf1c7cd9b377ffffdf7232323b9cce4e464f6a50789897979796161615486cbd7d7d79f3f7fbef09979ea8414d871e9a3478f92f34a4b4bb99f738fda2328d42359f2e5b9ee444c9f3e9d7baaa178cdd2560022840855b0dfd9d8d8ac59b346b8d351bc25fc9113a1c49ffff3cf3f245a2e50f328a72a9d4b5c84a3cb11cea1aaa64c9922710d25960110a15c77c8850b179e397346434323303090cb0c0e0e565353eb2244565616e547454575ebd68de686e43c914e48dcbf7f9f3ad883070fe8e78d1a35a26ec6e51f3e7c982a172f4f9d9997a248cdd2560022840855b0df898b50f8ea18fea3b49f0f1f3edccbcb8b02c1d6ad5b53505895ce2522428a5c3ff8e0032e76246dd3d4964249eab0cecece124528b10c8008e5fd100d7734e3c30f3f7cfaf429a5e3e3e34969b76fdf162f4f41dbd6ad5b1b376e7cedda35913e491deca38f3ea288302e2e4ef8e7543319ae72118ad45cc90ad4bf08efc738c61d1b80a5eacba53fff937861093a97acfa5d154528ede7070e1cd0d3d3dbbf7fff8001032aefddd2444862a39f040505ddbb778fcc4dfea6cc79f3e64914a1b432002254800e49933e4b4b4b0707073219a5cdcccca64c99c25dfc929d9d5d52524299d7af5fe78cd5ae5dbb888808fe5027e5d07cf3f3cf3f9f3e7d3a57803adea2458b0402417a7a7abf7efddcdddd2b11a178cd1257a081b6d0a96729fb1edddc8ea55acb8b7f22d1b964d2efcacadf94c49f44a84484d27e9e9797d7bc79f30e1d3a70a7e4abd2b97811e6e7e7474545f5eedd9bc23bfa181a1aaaadad4d3f4c4d4db5b7b7777474e4ca0bafa1b432002254800e492426266a6a6a7297412727275b5b5bd3474343c34e9d3a65656591eaba74e942dda97bf7ee6e6e6e7c27fce4934ff4f5f5dbb76f4f55ddbf7f9fcba7a8cec0c08032b5b4b49c9c9cf8632f124528b166f115c0ce022ad8efcaca4f1ce8eaeaf6ecd993bead448495f49a193366b468d182bf48fb9d9d8b56af499326d479e9571616161b366ce06449ff92db48ab34d3ddb87123d5b079f366913594560640848a4a66392239c2b713719d90e698696969e23f7ffaf429dff7aaf2b7c46f54125f010054b0df915d2476b12afebc36c5c4c9c8c8e0122f5fbee41f3d23b28612cb00885039a98ba75a0000008008158623478e242424603b000000440800000040840000000044080000004084000000004408000000408400000000440800000040840000000044080000004084000000004408000000408400000000440800000040840000000044080000004084000000004408000000408400000040b5f87fe5ee17db2eacae280000000049454e44ae426082}\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u28982?\u32780?\u65292?\u20154?\u20204?\u23545?\u20110?Domain\u30456?\u20851?\u30340?Service\u24212?\u35813?\u25918?\u22312?\u21738?\u19968?\u23618?\u37117?\u26377?\u19981?\u21516?\u24847?\u35265?\u65306?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 {\cf1 [image: img/frontend/mvcplayer.gif]\cf0} {\pict\pngblip\picw437\pich396\picwgoal4180\pichgoal3800 89504e470d0a1a0a0000000d49484452000001b50000018c0802000000d2bdabef0000000970485973000017120000171201679fd2520000001974455874536f6674776172650041646f626520496d616765526561647971c9653c0000462b4944415478daec9d7d4c1c579aaf3b81b83b6e4c67203463be368041371824e34c046846c16246f6480999dcbb218be2acee2a389612e9a2c1d21d09ade79b11d28c64225f29b94a42fec9389709d16ed624d2dacab026ca1546494c74c1240336ec1a7f8476f006e81ec0c1c9fd55bdcde150d5dd34cd67c3ef510b55579d3a75aa0c8fdff79caa3a898ee7df7210b2415416a49d6b38106eebf1f6befeab13bc4a64a3b89b97801042e84742085906896aa9f8fe648f33915784ac035726a747a7a6a32f5fe04d2af426f1ba9175603c70fbfcc82dab1f21c7fb773a7975c83af0e5f4ed6595dfe54cccf0dccbeb46985f134208fd480821f4232184d08f8410423f124208fd480821f423218410fa911042e8474208a11f0921847e248410fa911042e8474208a11f0921847e248410fa911042e8474208a11f0921847edc2eb89d09c5591efc5cd65ed8051f6fb23372b5b969ee90ebf18972bd0554585d9a11e1b88490b523ee27e4aa2dcfa9adc809cccc1d7ef9bc7d2bccf24addc35868ebbed276fe0a165a0e977a3dae8e0bd75abb462c854f3d5fee7625369f1ee8b97c4be909f597ed49d58bf55c1a4755233703facaead24c3463c4e76f38f5a9a579d5fb33b170b4f523dfe4ac5a5f55945e7720cf5ede425d655e71b607c7d2f72584307e8c0a09d9e0b5aa22af7d2b346459d373791c3fcbf2532debcbf25350093cabe4880a5b9e2915394264fda313be8919a3e49ed4c0ec5cc86a73bd4996c8541dc87244891cd5b108218c1fd7225f4e542aec1cf059b62239b5ac41190474082121563d06147f750e8c297fd51f2a34d65c1c43b4a8c23704a428698fe65015dc0ac362ab6a069c8b03c1aaf809db76f45eb7f9719cbf8284307e5c5be026e4a1967e3a2809c2525e53224330285bed819e525bfdc102fc44cc78f2ec906e432ceb9ab387907a97a2d429793d424bd506a85962554b924e08a11f5713918eb8c9122dca57b1a137d9a58790968457926b047a222cf80b111f163a7aaf45df92feab13b66a53a56d3d97c6edb9b61e3c1ae1eac182a6274bf0d33e688373acabcc0db79510423f86f1a32932bbf28cd1646f1294671f871131498a1d52586afdb2fa07657778567617e7c28c81d93bb24945ace238f1a9ac6faa299136e0a7b99ca2d78c4cbf7a7f2602e4aabde9d84a4512423f2e23b9866ba49b4f99458247c96d2d204746e2acc79be2269538ebc1e6329a317b476255f197ee5c357a8348d0b8b3277ba1f3115feb2af3d0f8a3af7f74fced3e7c1ce6b0b55e735bf795275a3e3cfc52b7a5d98410fa312c32582c49b1d84d06ac8d51943da9e66074302414256929f6985298047a509bea67f44dcec4d61e89375524a824688490f329b6d81387c34a5963f445cece19770895e7c85e12145b3277943f7976d0b1b88b9310423f8626372dc992de428b90a3445890a03828422e0c395a46669470459dcbf4e3b8b858868624b9d63761bde5ce1e8955ddce44b95d1c1f04891227868c7ca5d9fcc525641dd83a7f6970077c043fc27712454a44a9baf92cb970e7c5b1aabde9286c1f2d91316ea4c3c873b17b38c9da5177f988a0f53a558aad7f355b32275fedfda47664304a6ec32484307e5c1a6540c99aeb0ee4c150d09fe52e45cb9ddbea46711436eefd5e5cf8e4d921c9735b0e971ac1a0b92ff4648ca53c5912e1813fdd83ba1f558a8d4dfa9d3dd278085d0d0ac95142568e043c9cf109218c1f1761e98943d22aa334967c5925e3ba595058623d87765bb81e09369f1ea83f5888dae44671cb71edf52bdf212c75988f215a024fe8529ec6b1c4aa12c9b63c532a6935d2739c855e7f63f58328066fa23168736bd7307f7137217d9f74ff4bdb6b5838fe8756cba6e1c18be7bbceb87725ffa4f608be8e5d1fc5cff48cec356d4cdf856e75443b6fbe7a023f4bf657943c541143fdefbffbd69baf9df8d1a34f3dfddcb1d52a493fae39504ff5fe4ce371c028822c24e0119e6381408fbefe11223b6350c51cde911b24517384e75eb0493467772e76944d96dde51674a36b32db638c2999cf77cb262c54cf6618fd92e6269814728c3edf27eb096474fe833362c3bcc2bdfa2678f3cfefb5fff0d11af95afff787f0f34f7f1e58bbc67477fdebe93f199a2e7fe4905dc4d80a6761e1e923c762f3a3efc6557c56b724fdb8ca401f963b785abb46ec1d794fb47c186ef7c8f5c3447068b80766c2ed22f7e884f845999c0db7c97e220b4a65361d27c089dedd59700122a6a3c77ead6f42f0889f88a1e4ab12e5da313234a0d46c690c38ddd6ca7faf68e0fb1f095935c4801245eac15ac03f0975aa480dc2b23b6b8d40dc6a5983ec1ea937ffb1e84742d615090c114222c5b6048fc873d51affd444df2756436117acc4267da5be46f6d26b965da4373324b905455033e2597da564d6eea464a37e9b280d7b2e3e8a8eb4c1de787ddf08ed617e4dc8f6253d231b4a426eaba7d8c1e4fab1a754b1da1f19bd93eff65c559a6bfa599deaa47bfcefea64dffff1cc4154f58fbf7fada2f2c752cf8bbf3d8638f4f57782af3a95bd5aff3984ad447c38e8ab2dbfc28eeae8109cb4e727b5474494badd50bf32260e74fcf7adaa23153bbef9ea09e9d30ce9cddffdec88dab7647f059a9db42bee1f6460fc48c8aaa6d88f2d4ab155726d19b1d1cdd2f87c4d606af2a73f3fd1fc523bf40a0749c407cb28bd3acc9e443d3885ceb08cf211c6c1259e4563544c77baad15edc17aa97c51335ea881e0b0de18b4d95f81cad130b5e38bbf398686e144b0151f2ce8bb8b1cb11ea780cab10c2f33bf2684844eb1614665b77037d938ccfe4108ebe9e78e41ac250f551c6df8b563bed350542b41193c855852ac24f61405eb61a93db9460427ed51bd90efbff796de9eb11ba3aa196873f923879a5f6e4763f013cb6898ec68dc9ff4c1191cfde41b67b0d568eda34f2d4af32f74a33cd6e3141a7ed1e208d5ef493f12b2dd8192a4ab51cc68ef7cb42005106d3d5696850f8238b5490d888b9eb0a6e1e72dca8c116a960053d2dbf2ca434a8b102b6a436ca8825995d44b97a2eef11f3e56a3ec2c3f71ac902973f04c3f3823a780cf96f9d764ff2321ab0c940459c01a925c474e8185e71a7e9557b09080bb7725cb025c86400c7a82da64041c9242e572fb77b89a91adabe58aca1f8b64d11889e924a2b424c868a755f4491e4b8591fb1351ad1e546e0d183f12b2ca20e7752725c338f28c4a841458b2601110dca73e4a5ec1e8efddb7905c4ba8286b5e69f9e59235ab4a445ba7db5aa154ac94bd2c6295c2d227108c28cd9851ba29656bb8bb82720b8b2414d54f4156d28f9b026316c3f29c559f07b5ae32f7d4f3e5ea2946b733c13e83ebca59a36ac9c686908ef99bb423df0d2e63d36fbe76023245540843353e5fa3eedfc656a856ea11afe935874bdba557317d77b68aec94ddec3da1928c071dfaa75669067ea24938b4ec2b96440daf9cf8a53452127615e4a224b636fdcf3ab9fba7e5370dbffbd911fa715350969f525b61ccf26a9f957085e4a625e92f13ab3f58d8f24ce9aabb6c8daa251bee4747f83ebb05b93c54f1d39f9f104536be502303c17af2ab2238e934446db22642da6e799e0fc5c4a4ca77f6641ccd408eaf9a2172c41a39047e4a23215069a4dc3e19ccc477799a5f6ec71a24fed88a0f12794bfe1ea76c85fe4735896b7569c6b29e055c2ef2dc74cc6fcf55d1a2db99a8bf2e6855aa259b0ac47dcd2fb53b6cdd7c826cd2f371280f7281aa8c4ec6fd15baf82029047d7a3d50150c184140ea1e1db50635c8688f2e6b94d15b8832d2b929cd80e2f5c2d248e9c1c4260918d5380f165adfe93edf75060d73ef4ad68780e45ea238d5e55d8ee78371f2f73353eedfe98cbb13404efd4addc3233e3fa4e3f5b88eb7f7ade203cb4d4f9614677b56b14ea31fa022a7adfbca928f7e6f6d3e1f9ffacb2d632e8aca82b4730d07c21553577e7ff67d0fe57c87da25ebc0f589e9f7fabfd822f9b5e4d4ea9d3a21df9c286f6f44021b726602f56e476cb5bc23d28ebd8c546bcf8e657d945da2f66aa53de1926e33084d88be7e42c876ccafe54ddd48ab113f56efcf34de77eb5c7803180cd254532293bdc83bcae4fd89eaed8aef34fcc0d8fdc235ec2b6bb01cee55de967012f26aac7e50cd1583a3349cfad454764a5d659e5adf79714cdeb62bbb1b51a4d95bda3f3a21aff3b1540be5d51f2c5413e6f826669a3b3e53efd395c2a853deecabd74f08595de27dfe1963a26a79fbb74c8a604e29631da531267a9d9c41568b92280079d962c0246c85680ce1eecf8c66022c58cc7891b87974d9d732a50c5642b54648bb375da2bc919b7e991a013fb117be860c0cc580522d7ee210f63796a385c68bd7e6eb5fee3c398490ad1f3f4af008d1a819a5a142acb4bcdc1b965111d62bcf7e0fc641797d6e6bfdb58ca29b253b1cab8ad265062e0477964d9d03636a9808e685ec604c181c6129c258448e685eb8fe47548be6e9d522442ddb63cca8a3ef82d3512d84d07194654dd54d08d9e2f123422d0915210824d1f8488e0c4546b85746d4a94f7c18fd564b04e708f5927087f98a5cc77cffe3921d9a21abd547e1e510e1425abe4b9c10c68f2150536be9b19e4c455055e48d663ac09513524f7595b9aa3773f9d24fa40109a11f57cafc24aed7f4d412a9b1e9c7f4707e94aeba70e973e4ad3a46529f6d4e573d5f18a1225c66ccbe6d4e80830660931a938912f32e488f9ee0abae03feb212423f468571fb8bcc66b5b8df4dcd4a881052f542a2308c037955976620fbb6cfde85c2bec95998086a33a6c10a95355bc08150b8b62238e12ab26954d270ea53199c41188895c68c838bc75564b66bd11f36d92741c49aaabde9463366efa00c9a844344d9244208fdb8103c86997770dc1c63495df0a3c7d5f878f06979dfc48cfd6e183583abdcfd63990b3b2490575bf715b95347ed0be5c920358e28770e61a512a2b4adb63c078e6eaa2991af96f419c55acf0dd71dc8d3ab8db2498410fa319887424f21fdd8d17bddbcdd67e1ee19048c58690e22cfd895049a4f0fe4a62521b8c356dd44101322415595e56bdbf92b08ebcc3b2e8d95509bd4dc70aab7ba34536a73980335eaee45548ead6a17296fa9164d3566ca36cbd81b6c298c06e0b87c369110fa71511e1a6e937123e4bc8fe6b3da3b11ca4bb21cf2fe184b3d96afe23bfb13df389c7e2f8e25f4b3ef1265b5210ba324434b42d608beff911042e8474208a11f092164e56cf1f967faaf4e3cd1f261840291b71242183f124208a11f0921847e248410fa911042e8474208a11f0921847e248410fa911042e8474208a11f0921847e248410fa91104208fd480821f42321842c8785f79bf5dd9cbc2781ba24ebc15fbf5edea4de833eff8d09ceb143d683d93bdf84f0e3e4ed395e1ab239f1cfcef967f9fb49985f1342c826c9af7ff96811af02d9281e487147d85a55e42dcef2f02a918de2ae6fbffd9657811042985f134208fd480821f4232184d08f8410423f124208fd480821f4232184c41389075acef12a908d625fd67d2fd6ec0bb7b5f5dcf0c8cd00af12d9303f760ddde455209b13c8b1ffea04af03617e4d08219b2c7e544bd9bbeedd794f02af085907be9cbe3d3e7d3bfaf2bb935dbb3d2e5e37b20e4ccdce0df9fc563fe624df7bff4e27af0e59073e1f9f5a9e1f3dae8772bec3eb46d681eb13d3ca8fccaf09212434f4232184d08f8410423f124208fd480821f4232184d08f8410423f124208fd480821f4232184d08f8410423f124208fd480821847e248410fa911042e8474208a11f0921646d49dcc063e7a6b9eb2af3d4d7c0ec5ccfe5f1ce01df0aab753b13bcc9ae0d9ff7ae38cb53969f929b9624a786f6b49dbfb216d7d037391398bdc35f6542b6941fddcec4e26c8fbea66c4f6a5551faf1b7fb56526dfdc142d4d3f0c7de0d54645591b7fe50a1bec69bec5c753f428e2dcf94f65c1a6feef88cbfca846c293f0afda31322c4ead28cba03793026c2ae9ecbb762ae1041287e22aada38ef27408e819939684ba62785c8e0c7553f10ce117294f325846c413f2a3a7aaf97e5a7c28fc84957e24764e82b4fd25716d61939b53e773396d72298455acdc89190b563338ecf8cdcf4ebb118822f7d6b7196c712ac610d3e58d0cbe85fa598940c19c7c926cb81545e2cf55bd6cbca90b549e80ad123cb8e9c1ddbdb6939ae14d31ba6ce5715b3343be40589e6888490cd1b3f22bf8653467c7e153ce28fb9a9a64425e0e09d861fe0e7132d1f8a08ea2af3aaf6a607d3eaf96eb8a6274b50cff1f63e09dfe46be7c53104a76e9771be583e7976481db7ae32b77a7f66506d1333a844623d193e523da4ade78611e162a1b63c074d95aa90441f7ef9bccd8fb3684cd99e5464d93885b6f357b0c6e2a9c6ea07bdf3133a775cb8d6da35a29f605bf795da8a1c2c9c3c33884ad0aaa3af7f2c05aa8ad2eb0ee4a17e9c9dfdfae8e7029a4f0fc8c58c704442c8e6f5230424523022479f3ffa84b1ba341372841d600ab83272020b95c06e28067d60af9ecbe3220e4376fb33a11b6c358478200f1e1119891c2153d80d619ad816f5c05c1096b8325c2c86b31055e158f0320aabc119ec02658bfb50b31443e3f53e011c02e765742f9a7d8bf01a8e2b0d9098b47360cc7e50a90acac656a4de65f929b24b344724846c463fe2ef59c56bb9dea496c3a58886a2e9ad931c13061155450601a3ea0d841d54172722411948c1320a4807a8c848224754ae37460e1acdcd3a08d07008c8082705dfc1b012b4220044ec896854f484628801b152b7958afb24da8564a14534492e11ec1cb27f56224775f5540ba33922216433fa117fcc2a3dac3f580017a8082e321dbdd7a030447c70075c10e5908e7eaba0d11967a6c92a805d54ff856b308edc4083fa453a08cda054e4ceaf3cfb3df825b22561b486539fca49e123aa85828d58ef401e3ee176d4cf05ff014810ea700ccd078fbe70ff5b2000b7ffd712cd1109219bd18f96280f2ed0d3c908402288b3900523a46a7cbca8adfb4a6c3718c22996ce381920c24ac8546c888f7468223f85cd25f5465488762e79b7264e4ae23e784ac90bd19c2eb2c0ec5c84d344c0886b827c594c1732b9b6dbdf1acf467d444288b0b9c6afd57070947fbd7007224dfce54ba6bcfcd0d56f1ed48505b84f3e58569681708fbefe11325cbd7e0978a14b24e6e6dd482146bd6d63ca89eaa4e4a058a38e686a37d2dd9a1230569766c29208662da33dfab9e0b87a97a82cc7704442c8a6881fe57e1459a82d37066d112e49a4a3df280329580c28c926d64bb118022278b07fd4e8676c7ab2042ac457b404d5369ceac5321a23ae141f49fd10108238896db106e9b9fdb8eab116390be336208f4b864dc4e948db65785a4696203e2c44087eb1a311ab9afda1e18247cbb998d7275d9ed78ce18884904de147249e4d3525eaabdc61135c9e9c95bf7979560f9b6019e93194bf7ffdf1c4d6aee1188ededc3100a14886aed26d5910a104ed33332736811cf5f51d17aed9a339091e252b57bbe3a4242c8598e4ae1dbd9e0829b37e1dc28dcccc27f283967391ff396238222104dce578fe2d59fa7e66cafd3b9deb796c64d3709c2549b4fcfd23d881929002cbcd2e5846bc863f78b806bb1bb7343a13e5c516ca53668e99a8d264cb57ec25b5e95e532f9290dc53d523fd7d7268d95db5c78c04c7c38db3cfdf702e0fd2f8a5c1967397c6a372e9d694f5124adbfb5ea5d9f29e0bfd28388465a59c8b5c257d7db8236e089f8f4ffde596f1ff506541dab98603e18aa99b58f767dff750ce7736fcaf65ecfaa8efc6d545ff17161625edf2d0237686072ff65de82e7fe4507a46f66a955c1fae4f4cbfd7ffc5c6fb916c5be2d48f6fbe7ae2cdd74e58ffebda9df593da23f8ac7363fc53132ffee65879e5a11f3df6540cbb373e5f23563afe8756fbd6f7df7debc5df1e3312ac97da4b1eaa88b9fe68768fbee4fafb31917fab842c8b92fd15f8c87277d7bf8e0c0dbcdaf22b08a5f9e5f6f58c2511c99effe00c1662f323a236fc440d088aed81db9fdf6be73f34fd48482c7e7cfab963b28c052812711c2cf9bb9f1d8122d7ad1979857b4fbe7106d16b6cbb07fc934a85ea74f48497ffd00ebe3f9c90155251f963f10b9c2241d97a2a722511ab3b29d948a5df7bcbb2fe5fda5e53cb633746193f124262e727b54790621be96ad719384b56f67dd20df5200b86862cbd8448c6b11e7128948a0f62c0a78f1c1331210e950e4d558f7f6a02211e6ac6726e41115c2c4e445efce66b2750f9d163bf96af28e6de959c57b017f5203cc441c3f58aa2b0e815fa434b1002c3f2fae1e458688c653c0a2d474b50391af9a3479fb2f418eaa76c17abda1a725ffa9190ad9c74ebf1a36524e7fc0767b0b5e1172d2aa5c557484425b9f81a989ad4bfbefe4ef0bd508dcfd7c0536a3dfc22232a58403daa27145f45977a25f0a0d8d382b21e3c85bda03ce5c7d36d46e53f7cb4267d77b63aae6a899e77e3e83ffdf909e5fd908357ba585ffced31340f52c6e1b0ef3ffefe357550e6d7846c7dc44d08944455cd2fb5bfdb73153fb10c23c01196a8135b4fbe71065b212ccb57a55aac977ab049541b2965de95dcfacfdd280c7339961a66c181e0412986b0514fae259ed581fe2047049552ff730d46bc0ce549286a39e5b6f72fa2a4da179523be46d8d8fa4e77f3cbedd24b2b1137fd48c8d647fc225240ba8a9f3088a490f8a93a282d21a724b9924a5bbe229c0c86788f05535195714700419f0c464b58a762496b6bfd1352210a973f7248991406c72e68891ad1566d96933afefb56d9046bcb8e5240b6e234a5a949bb3c7ac7a8a4e4b02782537856fa0a2c993bf36b42b62688a124151585c93254a50ae415ec8dd908c62d448303ab3ba08c0ad57279e521c4a4081ba13c091e1fafad0bb18b9c9476279091297f70464e2a78fa05a10d2e65a0487516aa5b807edcbcd8dfbf4d480c48bf9b8cc32c48f3c66889a3428fd762b81707e6fdddcf8e6047a8073e5a8bdb6e106922d585c2103ccae890740b8654987eb3a484ccfa49c96986ccfa0d113f7228646728f36b42b66c5addf29b06494e117f49522996442c2606c14f2495b1054d52f38f1e7deaf81f5a2d7729ae1cd51ee9859407662c3d8faa5f52b2693502333c7851da2695c84fa4cfea94d58e6a2bcaab4e5578d6d21bcbf89190adc0fbefbda5e238b5f0f8dfd5297f413772a74edd131508fa2005e9d48be1411789bce4164575ac904fbc2c0b4b1c0ab39ffe53ab3d045689b3c3ec5b44362d23efe9bbb3a506c8545a22a78c95f57f7f085be5b6213d134701ec8bade24ab9ab29b6277fe84742362ff8cb577ffcf82337c4b7f86e3e449127df3883a4f57cd719110104a477eac9308eb82ff257ecd8f74937c40445228293db7770745809057068354c6cf9baac7015b5c9dd8eb058b81bcee5711d6374c5ec734479b44d090e3534bfdc8e53961b9520593455b770c32f5ae04df9afc5b0f02387d47f2796d3df546cebf7532cd9ff5855e455efbc5113d1186f14cf4fed1c1853f31ca098bc6c5166c2919748ca5b825046bd8c4756ca5b8850a6b56b782d26c58e0be2f4fd14643bc0f75344c5e2b9523d909a4ce56acc4c9ded09ccce293fd696e7783dae8ede6b22c1fa438532e91876a9da9bae26db9217561a9634e759e50c078430bf8e5720359904d5ed4c68395caa66c5c11a78b36c0fe2ca84c0ec9ddc343736c99b6b654a6e2ccb1bc8e545e2586379a9258ce930df7acb8b4c08fd1897a8bc58a65890a0cf61ce3f2313664197109f3ea7a0918cbb8c64bcba54059e0eb5a380b43acaa9160921f4e32645de1f2eaf1fb7ccb7d57379dc0821f3534d3fa63be6a72b90f78aa3bcbc06dc90eca8f58eb008530c1242e8c7f8a0b1fa417362860002496fb253cd7b23d1a2f8b12c7f1cebd59c82d2a5087b5a268c2584d08f71899a40518104199120f26235b42d7310aa022ac5963c5acd75252939224a0854c6a68dc19c2c8f1ac92184d08f7195472f9e40119c3c33189c9a35db638c4d9b03d60e6d7a6e95625be61434c6732e8e55ed4d6f79a654326b29403f12423fc619c6247fa3219e1885e6f0693d375c7720afba34c3b8b1f1c235848148b7f5141b7122926b8bfb4e9e1d42ae5d55e435ee019a9943eaada6991eb9e977f0b61e42e8c7b800128cf0668a8edeeb72bf77d8c4dc950803ca6d8f3a10a272a20e3b2509892ff87e8a58703b13ea0f168843391e4d08e34712a42c3fa5ae32cfeb718df8fc21e3444208fdb86d23c74264d69023df1a4908fd481640367df2eca037d915b96b9210423f6e47f8742021db048ecf104208fd480821f4232184d08f8410423f124208fd480821f4232184d08f8410423f124208fd480821f4232184d08f841042e8474208a11f0921847e248490d562e1fd8f5726a7bf9cbecd2b42d681e5fea6dd9898f9e4ca7ff2ba9175604a9b6174c18fa353d3bc346473726372061f5e07c2fc9a104236477e5d5990c6ab40368a7d59f745d89a9be6e6258a19dfe48c37d9c5ebb012eefaf6db6f791508d962745e1c3b7976a8fe6041d5de745e8dd8e3475e0242b6186ddd5764667628123fa948c68f8410839367063b077cfa9aaa226ffda1425e9918e0f80c215b598e46ae3de0c37a5e1cfa91906d4a6066ee787b9f92e38e84bbcb7353f0938aa41f09d9f6727cbbafffea8492e363c5df2dc9f0e0a7aec8863ff6a2242f17fd48c8f692e3c8cd807c4d71ef801653939c58c64f5d912883925464f4707c86903866c4e73794377b4797a33331412f3335f3f5d9cf7db702c1673a73d3dc8dd50f7a3dbc35320a3ffef2dd7e5e05b2513c90e2fe878a07781dd64e8ec2ecdc9d77fbbf508a743b139a9e2cc9f526f11a2ee147c7f36ff12a908da2b220ed5cc3015e8795cbf16f52765616dc1f528e5464ccb0ff9190f8a3f3e258c3a94f951c0bbc49071f4c8f204780ad7fbb2fb3605e88d8177aedb934ce8b198185e767927724de93405d92f5e0af5fdf999ebbc3eb10b31ce5c118c590cf8f0f167627bb1e2bd96d29df3d3c3e1eb86d7f011214d9dcf1199f418cca8f2569c9f7ef74f28a9075e0f3f1a9bfdcf2f33ac440c7856bad5d23e1b6867c0b5c48392af80c62547e24846c72423e1eb30ad59e1df24dced656e4f00ad38f84c42b5545e9f8d8d78fdcf447082ab5ddbd217727f42321714f71b66725bb7b935d2bac61bbc101194208a11f0921847e24849095137ffd8fb5e58b46d97c93333d97c7d58db28410b28dfd68bb0b21303377f2ec60cfe55b1bd29ebacadcaaa2f48653bdbec9d9cd5f2d21642bfb5138dedee7309f21ad2ecd2ccef6d41f2c3cfcf279fe731242e847877a1528c2c6579efd9ed7e32acef2a895eb496bd7887eeb595591b7ba3403ad92099256ab5a42c8fab315c667365506ea4d76f19d2884307edc14e4a6b9915f0766e6f4e0b12c3fa5b63c079ec2fa9ecbe3ad5dc3328023cf0fa0a437d959b537ddb25512f6bacabcb2fc54b72bd13731d339e0d3c340890d457fea1d017595b9d5fb3391efa35a2c635f298978567faa4135c988792f8da35af5c26769155a827341ab64724ebd5a2986dd511291b2a56138176c92365b5e254d08d98e7e94516ce84c9e9782e37439363e5e04894034621cc474b08663fef9017c467cfefed1092cc863f9623ad4f6cab30f8b19a1186cadadc8817d820ff09b93641a221e9d404915b4e6a62569b24e92d732e3a7fe7e66b4568695b02f2a2cdb930a7b2a9149abd0541cda613e2b66a9565918bbc38c866acdda44914d4f96e05838a3c0cd3ba884722464dbfb511bc56e3e3da00f5e2300c4cf8653bd1215b61cde27f651e2506f4081a49a6a4aa0c8f948300f8652812176817ab0b5a3f73af61511471e2887f244856a82f6607c5791a34776f24629946ceef84ced1b980d16807c6d39bb137294f7a11aedefbd76ea850a44b238044e41e4d870ea53fe3613423f9a2632c7af1bab1f84d1cce4f4964ab7e10bc8a8b1ba685e2e2e33364cd44c14cca691bac22cc879656c073ff55014aa42ce0b91999972c028600e94770e8cc198d1777a4ab5d84b091a5e936af562080ca580fd5e4ec9d9710af0b55aa9824d9c2c4e019b7088b578b90b21f4639c21bd7288e6904a235d45ca298a140f221653dd76b2e00bf3fe3b5d469211eb6b44825227a466dc4eb43f131f1839fa3b2e45d021aa75457bf1a501d8cb72528ef9b740e3ff09e93740c324c624846c5f3f0a30149265080b61ddd1d73f822c9407a3bcbd06f1a663becb0f81189ca567e2486cd55633b41c41e4680ce0ec49c5cf28fd0859ab032daad617ed0b62e5a4f033e449a1b5475fffb8aac88b26998af4328a24645588fbfb7ba00cdfc40cbc06454a9085af8804eb0f1648471ed25884578b033aa719942518655c89fda31312dc219b76989d8352a0ba3443c6b82558337afa929da81f91a325610fa75da947aa855251a1ac94f644ffc08f34008d911a1ce660515d65ae5a96f41cf9f5920d23846c97f8d1313f8746cb33a52220c477f82ae32aea95f1709ca82d2894c59bc4776678380c09e67a935ea97b58d58fad624f548e43a8f53850989076bcb6220725df69f801be3ed1f2218edb7a6eb8ee409e7c82419fcf1ffd0de48694cf0cd61f2ab4d42022c67a7cd4e988250921dbd18f6ddd57ec092604a412587c6d38d56bdca868de2283e00bcad08753cc80710e71161267484af50c62013b5615a5cb7808b6eae3302a3ac3be90a0ca61b11e8750793d8ede7c7a009548fd885251edfc08b8d79becb2ec2e2dc449591efeb1548bf26889aa414e4a92ee8e0bd7e44ca5c17c550721dbd88fa1c22e4b3467846ce11fce337c1426761397858c0d910e87cc88ed9d7d214be2a0e11e7f0cb9c95e6dc86268301f4324648de0fb1f0921847e248410fa91104256cef6ba17c432e8410821f46310e3ee48be8e9bc42d1d17ae85bc3f21cafff2e54e89909be4d9305ee1b07ebc3239fde5f46d5e11b20ef0372d36e4b54f31dfc215ee260ac8517fb49f84f0e3e8d4342f07219b1979114973c767ab9806c97baaa27f1bc0b682e33384c499225b0e97ea8ff3832467e2ee64173e8f167fd7be4b456e0ad64b81a4c58f9f528e4bc48f950569bc0a64a3d897751f2fc27281ce2035fd45f1b7e7bea9f82f29a949ce90e5657d46c9bde3fed977fbbfa01ca3e7ae6fbffd96578190b8c332adf18e84bb1f2bfe6e3845827f1f0f740d7d79fbce37f255de87cfcb483f12b265397966507f14b572cffd85e9bbecc506c7a6ba2e7da9be528ed1e6d7bc0484c42fa239a54891a045911639569766a8b74011fa91902dae486fb24bbd72c5a2c8eee1f1fe1b930b85cdb98f78d1985f13b28d50f3ca0905dea4030569e7866e0e69afa9a71c193f12b21dd1672a06d0e28d8919bf39b78723f8b6fc42fd05cf84f12321db8bfed189e68e01cb0336f2784cae3789d767b9f0fe7042b60ec5d91ee396466d0a75ca917e2484049167104591720738e5187b7e5d79e2df7815c846b12febbe176bf685dbda7a6e583d2242964560760e970e7ee47c962b21b16be826af02d99ce02f3cdca43d24ca0bc88bc0fc9a1042d6207e544bd9bbeedd794f02af085907be9cbe3dbe9c57401aef9ef1b878ddc83a30353ba76e1a5df0634ef2bdf7ef74f2ea9075e0f3f1a9e5f9d1e37a28e73bbc6e641db83e31adfcc8fc9a104242433f124208fd480821f4232184d08f8410b256c4c1bdf5b969eebaca45aff3f44dce8cdc0c740e8cc53cd1656c94e5a714677972d38ca7b5466efa7d93b33d97c739a13621f4e386e1762616677b16af33bed61dc86bebbea25e0bbad68eae3f58a03fc72a4d421b0ebfd4bdce9a2684d08f8be81f9d38fe769fb2556d794ed99ed4da8a1c6fb2537f2d68045032303b1783cbd4346fbe8919048c32231256229674180fbaae8e1c636e5ea8ff5112f09f0a035b42b68b1f75905c37777c0645c28f557bd33b077c4b3ea50bc121e23bdede17c3f3bc881c21c7119f1f8256fe423d1dbdd7f51749ad849534cf825c96758bac09d9c2c4f1f80cfefe11d039ccc9d8f4f508ebf089d25c2826e5c31528cb4f91b4bab56bc41edcd9d7485c896030e4b1244e8cbe79aa42cb1bfd2c8758d6291342b672fcb890745f9da8f2b86010153a559766a8f9ced5d497ef34fc2018a6d594186235632bd8a4ae324f4dc7119899d3275cd7f464c811225e32b283a110697ae71f13b6bcc959dad071e15af5fecc689a27666cac7e5055887de1682c48b3d1a48653bda85fa6a34378db70ea5389438d4b516144917aa70421641bc58f86b6cc2e36356c02a14070f04bcfa571d1a55215f46724e63e3f967d933312fa95e5a7765e1c4379ac8755219a90d653078a1ce5c16e7099540879c99b9cedb655cdab3f5428115fc8e6c96b9fddce44681479373641ac1229b7760da37e1cabba341351244ed39c2a7ec821a3ea664c6d087d74025ff92b4ec8368d1f55e8178cc8ce0eeaf19a8abc1043496085f84b0f038fbefe9194c74ac36ec9b1bf21465cdc7a6eb8a3f7ba11ebf55e6b395c0a7143affa115534d772781fb64297d81ab2795545e950362a9418139bd042acc457b41936c4574488465a6d1693c8573a01b01ec5d8ff48c8b6f6a364d62a2916d945e84cb48a75f60ec234484a65e8215378982b647fa23dcc14394acd3d97c711f159fca81f3a7285886d1de6fd4321a772374687cc541d6d4334aa8e4b08a11f1d9281ca7c9530911e9445b93b9487104f75568643525484a265f92972674fe8c6d8ea59953b752c130c04e6a7ebd4eb37dfa19fc07b30095975e2b5ff51bae724b9ee1c183313522fe4d87971ace18fbd4fb47c184d462c99e9d1d68f8eb7871dc48013fb478d00b0fe60a13d32556ba4d70f0eb56c8af97e1df1b2db99881ad447ba26a57224d138e888cf0f77ab9e5642c8768c1fe5a616153155976648f7626bd7b0844eaaf71001975d641279c9f806aa82f5a43cd6fb2667ab8ad2231cfae4d94189349b6a4ae023fdfe70ac1417770ef8202c38d4183c999c45f390f91ae32dd1f9d1de3c7c903ea34e912c56569766624146deeb0f1638e6278347ab50d2f0b8792ca90aa6c657c4c8d27d4908d9ca7e3466adac59341c8ce80982500242962db78bcb2d3b882b212f951423c644322e5bc571280f85d51f2ac4474678f03564a20adf1d7dfd23b9abc61854d15278631c39d98902d0168c8943a036bd79519e9dbd7938af936706519b285215934816ff37745cb826e72e1d918dd50fca7093711dca73d4e5c257a6de84c4c65d8ee7df92a5ef67a66ccef91520204b7c8710096a0875afa2bb2c3f154928a4a0de22a1f7d3c9a007b6cabec6bddf694928031f61192523877b12c3aa9a5189e5be1f7508a9d39e89abfa65e2cdc8cd9373c74af361c11933bf9e950125fdd454688932d21eb597bd199b84cfc7a7fe72cbe840a82c483bd770205c31f540d1feecfb38bf02591fae4f4cbfd7ff45dcf8916c3de84712177ee4fb1f09212434f4232184d08f8410423f124208fd480821f4232184ac2f0bf787f7dd9cbc2781ba24ebc15fbfe62deb24aefc38797b8e9783104242f89110b212fc5313238303fa1aefeeacf48cecad74827d17ba0353933f7aeca9d52ab9d9fdf8cb478bf89b4d368a0752dc5be65c20c7c6176a2c2bdd49c93f7cb4e6e9e78e25edf2ac7503fa3ee996069c7ce34c5ee15e7b81679f28f7ddb85ab2bfa2f9e5f6d84ef0773f3b82dd97b45ef42537bb1f7ff5e85efe9512b25a2066fcd1a341290c0f5e3cffc199d37f6afdf37bed50524867ad22c3431765e15fda5e6bf8458bdd9e9023ff81985f13b261a4efce46b4b8e0acc18b2dbf6918191a687cbea6f59dee25a3c8f7df7d0b99e94f6a8fc42053e4b3b270beeb0c325ccbb1204dfeeb2c170e5813b286407312ca05fc938822972c8f32f828d3c500327a1c0b8ad4578e5d1f45241b5cbe31ca7f17c68f846c164596ecaf4054086721307498c31790a0282cb7a048f54ebef9ea0991d7fbef195124f62a79a842ec86e80f412896cb2b0f492576645f1440e528aff7fd49f08863a1124b966da9fc878fd6e881a7de5498d772447dab7d5ffa9110b234e247e4daf215b9b6f808603d8475fc0fad861f5f3ba1a248fc7cfac831f8110eaafbaf15aa2a94c7cf908a14f1c1531016ea87f864f45c2c8685e3bf6fd5ab02dd5dfffae26f8e21de549523c16f7eb95d34871a1a5fa809d76b896ae544a05d7c7db5e557d8f77ffdf12cf36b42c8b2511a82dd9a5f6a7fb7e7eac9378cc84b65be5829ae79aee1575846388665a80aa26cfde76e94c77a87d9bd18e128e9bbb3a14887d6e16824ecfe49d466b9d908821339a25a548e43488009d34981177f7b0c72c48e6def5f44819ffefc84befbe9b65614c6be70223ee58f1cc25728927e24842c039848d25bf98acc571267cb200c564ae09657b017cb4a6748c06519eb973c0aea94e85275778a28d5a8bac31ccb966851bc29e57108e92a951055ee61444e8d95d22a98573fdcfbefbd2531e69baf9ec047ecbfc586c8995f13b2e64884a86c88ac7664704034140d101c3484e84c0c180e95b3e340dedd595015a239f7ae642c40cd62e445e5cdbbd975eb490bc571b235c2307ab0d8d080de8d80e36e293fdef5423b7f7dc94611797e85ad0124252a91080ea6fbddcf8ec0230806619f252d89dd91f04270623ddd4711404888bd5426aefa2ba527542fa90f678b7f75c74530b20c94ffe3ef5fdb626332ccaf09592710fabdf8db63222689e024ed852b8fffa155bf537251a6ec5fb092943fdaf06be4b97a8e1c121c4516a4ef12712b3ec62deb8b9f6391faa59b120e550347d2f32895486ba16344bb7693aa62aab3524e367284cbfc9a906d0d5cd3f87c8d5a965e39a804715630ecda65dc25239d772a945363cd8813b1f2c5df1c3b5dd88a000d0e95bb6ade7ced44c9858a60975fa81b18a54b5181980e8a542eb667d615953f46405afec82108b4feef0fa185a816712e0e27a340e0f1bfab3bfda7567952506fad00b9630d0e819f48d2d5eef1fe4c61683f16df9fec715297643db832393d3a35bd254f0d42541e812c20208469ba3290eac265b0126487ad92a5c22ce2474807cbd88a4a240684ada01e7c4568867d916ec37df6c763ecc88d9086e66aebc295817fdf7cf584dc6e197c54fcc8c2a3e2478ffd1acb880ab115e286e2216e957d43afcd2fb76377b456ba38b1af9c29fe0f8052d57854fcc2f95dc906c0f95dc9a685f3bb1242c8d2d08f8410423f124208fd480821f4232184d08f646df0263bf1e17520c4cebadef05855e4ad2a4ab7ac1cb9e96fed1a89b9cedc34777196a7a3f7faaab4b0e9c912fbcab6f357e42e93ad476d794e6d454e5bf7159c23ff1808d9483f7a935dc5d9abfca8665d651eea1cb919581585856ede79fe9e10423fae0b9d17c73a077cea6b6036da79b79106225a0cccded155d8da358cf851ad41017cf0d537391b730b8fb7f759225cfea210423fae0730576cb11e72734906f5dd1139e263092721b895f871ab66d38490cdeec748e96d96c7ed4ce8b97cabaac88b641c811b96556028c308f88962883a458b585f969fda39300621caeeb2d214f10c8a61656e5a921498f7ac5179cfe5715dac51364fec2935489f1d8e8806e02b8e853ad551d006b733116d307a15b23c5890a8b92c3f05edc15714462cac2a57f5e89ba47755ef3da82dcf71985da2aa49668145170af548d8ab564afd382e1a89faf13f0d16f4285e3f471458c9ff2e84d08f2b92a0fc9107d36dcd5c4d35c6f0c888cf9feb4d52c9f8c9b3432a3034ecb6371d9ffed189e36ff7a9f59250cbeec6ca03798644cc610714f07a5c4a4fd004d6b85d8938ee725b2ef5e3d0386260660e95e35c1aab1f446d4a5e0da77ae574821da3dab9c04a86a4e6bfaa5310a9353d59a2ea41e5d8042dc27408997111c48fc6a5ab302e9d927b756946d99ed4e6d303726af5070bf17521b8f6f951cfbc6a93d07eac818271a09e4be3763fd61f2cc0b54599e68ecfa8484236c28fd91e7d18c4de5788a8a7b56b04ca80e6f0e70a0da180e8cc50e1e884b9cb8cbd6608d188ec3c2e084565f15049f5fe4c33c694f02d1576402511fefef5516cfbf03a1a860349b7299a014f75f45e8383ea2a73e13ed4af0fa6e328ea5cd0785849ff8a58589a01c93ae65fc78053a83f5408bd426d683c8468c6834312f9aa10585a6584d233731227c2ce9023ec26d125bea23d8dd545cac246e3bd4928d0d37bcbdea92a72440b4f9e1dd4035b42e8c7f54304a719c46a3af9f3461978c19488cbf4a34f86bfb13edccd2812d0197e1cf0a94360d9f0e37c5425b967e4e031f220bb8a10457fca3e9014ece35efc8e38b8122d51e762f92aa7868c1b6dc665994f6f67551b205fdfc40cb642a9124e4a008805f8113b1a81f0c5e0b9e03425f014bbe128a75ea8403d882b95ef505bc3a94f2d67840210342e918ad609211be4c7f0825b0b9462601343317b522191905d6f0a7dfcda3ebc6e093c0d231bb758bba477320690f98a109bb243dc7da9e25f1c0536ece8ba8e659c85744d4a01c77cdf284e50a9d018e837bb0250bffadf2264d48cfa95cdf92741c846fa71fdd114e35a3278742c67fc5aeeaf76983d7dee95bd5d38dc4dda680c1a2f165636841f9162e38c5472ad22417b0dd1dc412526451489e898c93521c2b678be50a245284692eb558c92aa4b33f0f389960f91b4468e4997d4317ca7db4d86e0256d8704212f34bee79231ae1d542474ef71c9b263fe264d24f86a4723c034c791961ca6efb8700d593914890a1bab8bf85741c886c58f08b824e6d2f3d9684236e9a9142521980ad9536696f1d455e64a542511994ab1a59b6f15476665c4196a438c86fc3d5c04b7a41f6598bbe570a94856c6618ebefeb18a7fabf6a61b83cea60d0d455e1a971e55e547ac84e61069363d592201b23cca194d5786048ccd1d03af3cfb30948aa0988f1b121267f1a371530bd2585722f46af8229489101b2262826bcc61df147ddff958726c159bd47a6e183feb0f15d61f2c0c8eabc4d40ba9c237f9cf03a9ba6e28f9cfc34ca5c76d6b16926bec0245e2fac092d2a5889c3dfa6019966ceef84cfe038bb92f9590ad44fccd3f23f75d239d8cd04da66ee4d6d734d594208a5441d9eab6478ea5eed7890d19e751b7bec718d29af7813b627d0a4806cad7fa1f91f3cf904d8b3eff4cfc8dcf44f3d76b518379e3744194c9e64adab3c2cc1dbbaf3cf7b73c9fbe169797906dc2d61fbf464004394acf63cc43288410fa71ab51969fd2f8b831206b3e3337c07f6f4208fd18a4e7f2ad9e4be3bec91964d6bcad8f10423f2e42c664092164b970fe194208592a7efcbfd76ef17290cdc985d1aff0e175208c1f0921847e2484904dcc5dfff697315e05b251dc77ef8e7dd9f785db3ae2f3f3ae03b2917efcf6db6f7915082184f9352184d08f8410423f124208fd480821f4232184d08f8410423f124208fd480821f14fe2819673bc0a64a3d89775df8b35fb781dc826f563d7d04d5e054208617e4d082151c78f6a297bd7bd3bef49e01521ebc097d3b7c7a76ff33a90b8f1634ef2bd7131ff35d9027c3e3e453f12e6d78410423f124208fd480821f4232184d08f841042e8474208a11f0921247612790908d932f48f4e44d89a9be676bbf8274f3f12b27519f1f97d93b3233703bec9192c0466e7b0bcac1abcc94e6fb2cbed4cc84d4b92e5e26c0f2f2cfd4848bc0686fd57839f95d706abe283859ecbb7f4e8129fe22c4f597e2ac34cfa919038d062e7c058cfe5f1c0ec9d350f4b6f06f0e91cf0391c4365f929b02445493f12b219e9bc38d676fe8a4479214971ef7026dcbddbe3c2b2fc04a9589918f62d33d727a665613c70fbf6dc3753b373fe99b91b9333f692882bf1713b87ab4b33ab4b33b6ad25e9474236178199b9e68ecfec79749233111ecc48764182a949b1bc4a26c373af6541989af91ac6bc3131737d72e65660e1bd21085ae1e88ede6b4d4f96e47a93e84742c806639123b4f840cace426f526c4e8c865dae7bf07920d58de5d9b93bff31fed7419f5fc595b0e4f1b7fb5a0e977ae7a354fa9110b201f45c1a5772dc917077456e4a61faaef56c00d2731c111f24e317ae7c25969440b2fe5021fd4808d930d49d3a081bffdbbe8c089d896b0d72f08c927bcf0ddd1cf2f90d715f1e677e1d3794e5a7549766aa9bb6fa47275abb86f5bbc0dcce84aaa2f4b2fc5429e39b98c17fcbf60eefaa222f8a750e8c99c3764b803aeb2af38ab33c9268a04efcd2b4768df0af9aac3ab7e7bef1cfcc399336f295fec8b5d10c9565d38ff101a426a1be3c2de04d764282ba1c73d3dc8dd50feadd2558aec2676f7a5bf715587261bd79676c34f794418ed24b6da8d63c2e76dc9ebf34643dfc78e79b77fbbf28ce48c66743a2c8c1b1a94f46bff2cfce6de77f85b8f4636d790e7e36fcb15739118ad494e784c8dcaec4119f1f2a943b60b112a15fd99ed4da8a1cdfe44c34d1a22d624d851c7b2e8d37777ca61f8b7fc964ed147961f42b7c0abc490fa4ec94f193b566dc3f3be8f3fffbadbf6e7333c6b11f83e9ad76df969e35c39e9023a2bce36ff7a9f80e05e0b5fa8305082121ca186eb845a46939a8e5b884ac11433ebf7402ee4e76edf698f7f7b877ec72ddb35a49b4dcdc233f21655ef0f8f6230243847208127503aa2c1806c4022247bb01b1125b614f0483cb0d21476e1abfa0d5fb33e79f310801f27ad4ec303bb3556c2b4fb90666e7e0d6aaa274795a16c5f467c58ab33cf8e01012ed6217148091b18bae727954561c8daa56eb6933b209497226ee72265a6edec6577dcdeee4859bc3513849bb8bdb9970b7dc0f24fa5b8849e7be91af728bb8f133bc10e5d6a2fe1b93f4633cd1da35d258fd2014f9cab30f77f45ed7fb136122590839dc663cd56fba15325aae1f8d270a2e8d2343af3f5408375986838004a7c118b622a7f3e2d8c9b343d2a4a69a121cd77823802b119540a3f0ac7e27475d652e5a75f2cca04856fa07645360660eff0dc8b1705cd4dc3f3a21834eade786e9c7ad0a7cf758c9eea999af25dbd56fdbd675a97eae223b12eefe9bd49d92d15f9f98dece7e8ccbf73f420a86327c7e4804be78e5d9efc1292a100b6a254cfa2ceb25595e2ec8d0dbba0d17434f2dcf94426a6a93310ebe371d4e3cfc52373e681bbeaac618d6f32621eec3ee6aac1caa95ee4bfcc4567850d643fdf879bcbdef89960f614c9c635d659ede0c1c1d6e455594e3d6b7a4eb9e8772bef3b7fb326b1fcaaadc737f813729c5bd632d0e0427221add9f7ddfa3c5dffdefe57f73a0206d7dba3b193fae4d8a7d33d070ead3ead28cdaf21cafc78580abe1546ff4bd818158fb9e11ab4270f5070b2129c48012cc1a79776986885b0258344fa254a530dfc40c1a6ce92240128df857f645b50ef3be259c4e707c3ccb23676479f7948a4cc9b612253eea5e718475fe99b9a9d93979863a982f47d775280f6eef48bc3bd5bd437e467e6a9b7e8c5720170848b2515806aa523e424419f2a578e29a95445e7016a257c9a6a148e9e894a753233c6060713742c53a6f12a24e9c8274596241f50fa0914dd925515645b621c603d4115fd888c47cca0c02544724d9767e94480d6641962d6681f890a88a2eed4196446a8ed5781800954b6f238eab6c8b8c38cadd112dd61dc83343c860c0a85bcf72932621b1c59bbc0e2b242efb1f1176b99d0be98074f3a93b6f241083bc506c51e498e5911b273b2e5c8b21049357875a0eaa8e2b19b1f2af948f98e0df419aec304666f25472ad025bcb0946ae8a10c2f83108c461797806f1176246157061012be1471483b0e48e19e3061a33b38695ec4f0422fcc4475fa3df7caea48c6cda3731a3f7092ad576f45ec31a23244c73638d34e0e499c108a3e4886151461aaf8ac18fd235d972b854568ae58fbefe317f5909a11f97f463a2dc67a3462de02c64bb7a4888afb00fa2458846bdb70e1a6aed1a8ef2b61e7bdfa5f14afa8919e84c3db608392a29c3c2b0218241758b0ff41d398bc72e52a10a1e85e36ff7355617e1ec44d9d26cfea612b2fedce578fe2d59fa7e66cafd3be3a91f57a5d5119265b9a15a6ebe71982f8f826b5632be21153ac28ff048ab466efa57f868b61c2886a997e282cfc7a7fe72cbb8dfbeb220ed5cc301fe1d2a54d7f3ee64d76325bb37bc3dd727a6dfebff4296df69f801e3c7b8219a3168998708251136d61f2c30a2ce2c4f47ef75a4c3b1f94b4d6cb49256adca8108216bcddddbe43ca1ada3af7f2c7777236fb5dc714d08215b2a7e8c257931efee46deca274f0821f423f3564208f36b4208a11f0921847e248410fa91104236191b393ee37626146779e65f08e6375e5ebb55ee8556b791eb44b8d9bbaac85b969fda76feca96bc1b9c10fa717966ac2dcf91f727ea982f49ecdd029302ca8bbe2d2bfb478dd7fa862b5f9ced91376b38ccd789634de4375a4653861012677e5413a53accd7c4cafb23e4ed3888b0b6d28ca9ea651682cc604308a11fc3527fb050a61350d3aa28e2e5455e88dd900e9f3c3b14f93ef3ce015f6caf716ced1ad15f3264bc3ac87c11915e9ba50c2164d559eff1196386bf3da9e69ff7b0bdaf2d5e7adf72d392d45b7cd6016fb24bbd858810b265e347994b407fe3610493d696e7884c91862374924c5c36d555e6c99b7b1058b95d899d17c750c0289f9f2a73049e3c3b28a9babdb031b9d5fc480892fdead24c0468f3ef615cf476c8b2fc1479499ab441e66f303a07cc381751a4f19adbf9f9b6960b6a56c7b5c7a7d5fb338fb7f7e17012ab4a142973c04a0bf532f6d6eae72885e1f49ecbe3a8aa38db83c4df7cd4d2c73f004236911fc52c4bc6891041534d8958c9614efed7f878917addacdb9968befcd1f83b475558aeda9b8ebf7c1920c65758b5ea6aba0c77580a4b008b9ff2c659e3a5e21539388a4c9a0ae340372262f8485ec48badf0a0a115f355e1eabd9362a20829b6e5b5bbbacb2059d40333e2b8c604d98bc343354bad1eabeaaf9eb49411dbcab150a137d9296f2a523d18288cc3e183adf2fe5d9c1a3671b89c904de447d82a9a62f5070bf0530951548530500f79f0772e3302222aac3b604488fa57991ad05e18327ae5d987211a995c102a54da9288cc8cb36e39e6673ed0a49c2001e9132d1f8add74df2d0b2312ccf6a049f097d42915862c8c32e2be0893d2408828a077e9caf461d8b1b9e33355acf9f4809c5a63f58310282e11fd48c826f223d24388409f5c25e45f3bfc057d281b6241e671d567255423ddb2c6f2d582da2a19313ca8265f558ed387ce712064e20839551b6218580f673479872ef4bd5a83f55221ce4b9d3b8e6b9980db7289a4e38210b2a9fc1890cc34dcfcaba61f5d761f1993ba785c51869f91b1781071a218d91ee7aed1ad857282ab58b9fd8a49e5503c7fc5098999f51ebfeeb93c8ea04c12407b14296b02e6bcbd967b7da030c72add4238df07ea97241af12c8244e49e32a1e0bc5f66d441571d39c155acdc7ec58297cbc73b2e09891f3f22c69169a91142bef2ecc37595b9c6cc82599eead28cc6ea07b146624c3814b18f38d498b0f060814c121d73422af538ccde49a496c6c088995607a721ecbdd673f9965846c55f3279966a83b1637e8addb311342733caea1f292c8736c69acd1af0331a5746389c4c0486f3920966510617d35c7f8bbfe284c44d7e2d7638dede27caabde9f6979ca107fdb70131c8abf70630eebf9e90061b4936707638f19bd49a75ea8505fd5dd3f3298dbf46489637e3c5a45616843534d89de060498621cf8486673c527c2538332646c39779c5de7c0585591d798c4f5995275769183eeda0ae356279920e989960f2d055067ebb961690f3ec1ae0cf3a628fe8a131233098e876b642927f9de9df7ac932ef1f7dcd17b1d19ee5781db5fcf7d8baf50c099fff7859a5c103f3f1cbc8905d98ac230da577ffd5a8f438da9a2b5b19a705f8df90bf7a62318c42164bdf9dccba494ecfd8fff343befeefa70f0cb373efcf71d09770f7e31858fb441665e451b50159af74f1f5ffdfaceb7588302083651585a2ee5ede78863d93f68032ac1d9a15a0996ffe9a3ab6806327ad4a3ce11eba53096b112d70a87fb2af0b51c4e9aa197c14a094bf155eafcdf9d97f5f6e88555f336ead9ed2fa76f8f4fdfc6c203a9ee7fa878807f87faffa0f2efb8cb995898be6bc3db33353b3734df4b637fa5c096278ee7778d12b99532429447d61fceef1a0eceefbaa9e0fb1f0921847e248410fa91104256ced6bf7f78e4a6ff787b9f7eef0e2184d08f063266cd7f694208f36b4208a11f0921847e248410fa911042e8474208a11f0921847e248410fa9110b296ccdef9663334c33fb3ad1faca01f09d944a897eadf0adc3efbd9d8ecdc9d0d6c4cdff589ee91854995e94742c846525594ae14f91fb7fedaf6f1d5eee1f171ffbabea613521e1c9bfa3f1f8f9e1fb9757b3e8cad2dcfd986ff1c9cbf8990cd143fba129b9e2c5113ff424ffd3726f14971efc84876edf6181f6762c25a1c1a16be3e39736362065eb66c925949e84742c806634cbc71b8d47ccbfdc27b03906ee303516219aedce54c4c75efc06747e2ddf8198331af4f4ce3276c787bee9bf1c0ed1be6847476bcc9cebacabc6d3b1b30fd48c8a6c3eb7135d5948cf8fc1dbdd7655e107dabb8d21ee5ed4e762d59f3d4ec9c3fba7759156779aa8abc6af225fa9110b2b902c9fa438558e8b9340e4b2e395f50b8187019d9bd33015a2ccb4fc54fcb8cf0f42321643382f456325cdfc4ccc8cd80f9f1c3956a42bad803d564a737d9959be60e7ecc293c09fd48485ce6ddf8e8bd81819939b1a46f72269ad9281121e6a62505cdc808317a3f5e999cfed29c729390b586bf69ab85db95383fc7ba8757630dfd383a35cdcb4108210ade1f4e082161e2c7ca82345e05b251eccbba8f17816c5afebf00030049fd6c8380b20ce40000000049454e44ae426082}\par}
{\pard \ql \f0 \sa180 \li0 \fi0 Domain\u65288?\u19994?\u21153?\u65289?\u26159?\u19968?\u20010?\u30456?\u24403?\u22797?\u26434?\u30340?\u23618?\u32423?\u65292?\u36825?\u37324?\u26159?\u19994?\u21153?\u30340?\u26680?\u24515?\u12290?\u19968?\u20010?\u21512?\u29702?\u30340?Controller\u21482?\u24212?\u35813?\u20570?\u33258?\u24049?\u24212?\u35813?\u20570?\u30340?\u20107?\u65292?\u23427?\u19981?\u24212?\u35813?\u22788?\u29702?\u19994?\u21153?\u30456?\u20851?\u30340?\u20195?\u30721?\u65306?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \f1 if (isNewnameEmpty == false && newuser == null)\{\line
    user.setUserName(newUsername);\line
    List<Post> myPosts = postService.findMainPostByAuthorNameSortedByCreateTime(principal.getName());\line
\line
    for (int k = 0;k < myPosts.size();k++)\{\line
        Post post = myPosts.get(k);\line
        post.setAuthorName(newUsername);\line
        postService.save(post);\line
    \}\line
    userService.update(user);\line
    Authentication oldAuthentication = SecurityContextHolder.getContext().getAuthentication();\line
    Authentication authentication = null;\line
    if(oldAuthentication == null)\{\line
        authentication = new UsernamePasswordAuthenticationToken(newUsername,user.getPasswordHash());\line
    \}else\{\line
        authentication = new UsernamePasswordAuthenticationToken(newUsername,user.getPasswordHash(),oldAuthentication.getAuthorities());\line
    \}\line
    SecurityContextHolder.getContext().setAuthentication(authentication);\line
    map.clear();\line
    map.put("user",user);\line
    model.addAttribute("myPosts", myPosts);\line
    model.addAttribute("namesuccess", "User Profile updated successfully");\line
    return new ModelAndView("user/profile", map);\line
\}\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u25105?\u20204?\u22312?Controller\u23618?\u24212?\u35813?\u20570?\u30340?\u20107?\u26159?\u65306?\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 1.\tx360\tab \u22788?\u29702?\u35831?\u27714?\u30340?\u21442?\u25968?\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 2.\tx360\tab \u28210?\u26579?\u21644?\u37325?\u23450?\u21521?\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 3.\tx360\tab \u36873?\u25321?Model\u21644?Service\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 4.\tx360\tab \u22788?\u29702?Session\u21644?Cookies\sa180\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u19994?\u21153?\u26159?\u21892?\u21464?\u30340?\u65292?\u26152?\u22825?\u25105?\u20204?\u21487?\u33021?\u36824?\u21644?\u23545?\u25163?\u31454?\u20105?\u35841?\u20808?\u25512?\u20986?\u26032?\u21151?\u33021?\u65292?\u20294?\u26159?\u20170?\u22825?\u21487?\u33021?\u24050?\u32463?\u21512?\u24182?\u20102?\u12290?\u25105?\u20204?\u24456?\u38590?\u39044?\u35265?\u19994?\u21153?\u21464?\u21270?\u65292?\u20294?\u26159?\u25105?\u20204?\u24212?\u35813?\u33021?\u39044?\u35265?Controller\u19981?\u23481?\u26131?\u21464?\u12290?\u22312?\u19968?\u20123?\u35774?\u35745?\u37324?\u38754?\u65292?\u36825?\u37096?\u20998?\u21487?\u33021?\u23601?\u20250?\u21464?\u25104?Command\u27169?\u24335?\u26469?\u22788?\u29702?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 View\u23618?\u26159?\u19968?\u30452?\u22312?\u21464?\u21270?\u30340?\u23618?\u32423?\u65292?\u20154?\u20204?\u30340?\u21697?\u21619?\u19968?\u30452?\u22312?\u26356?\u26032?\u65292?\u26377?\u26102?\u29978?\u33267?\u21487?\u33021?\u22240?\u20026?\u31454?\u20105?\u23545?\u25163?\u32780?\u20135?\u29983?\u21464?\u21270?\u12290?\u22312?\u24050?\u32463?\u21462?\u24471?\u19968?\u23450?\u24066?\u22330?\u30340?\u24773?\u20917?\u19979?\u65292?Model-Service-Controller\u36890?\u24120?\u37117?\u19981?\u22826?\u20250?\u21464?\u21160?\u65292?\u29978?\u33267?\u19981?\u25954?\u21464?\u21160?\u12290?\u20225?\u19994?\u24847?\u35782?\u21040?\u21019?\u26032?\u20004?\u38754?\u30340?\u65292?\u35201?\u20040?\u24102?\u26469?\u27515?\u20129?\u65292?\u35201?\u20040?\u21344?\u39046?\u22810?\u19968?\u28857?\u30340?\u24066?\u22330?\u12290?\u20294?\u26159?\u23545?\u25163?\u36890?\u24120?\u37117?\u27604?\u20320?\u24819?\u35937?\u20013?\u30340?\u35201?\u32874?\u26126?\u65292?\u25152?\u20197?\u24320?\u21019?\u26032?\u30340?\u19994?\u21153?\u26159?\u19968?\u20010?\u26356?\u22909?\u30340?\u36873?\u25321?\u12290?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \u22312?\u39640?\u36895?\u21457?\u23637?\u26399?\u30340?\u20225?\u19994?\u27604?\u21457?\u23637?\u21021?\u26399?\u30340?\u20225?\u19994?\u27604?\u65292?\u26356?\u38656?\u35201?\u21069?\u31471?\u24320?\u21457?\u20154?\u21592?\u12290?\u22312?\u29992?\u25143?\u22522?\u25968?\u19981?\u22815?\u12289?\u19994?\u21153?\u24453?\u23450?\u30340?\u24773?\u24418?\u20013?\u65292?View\u21482?\u35201?\u21487?\u29992?\u24182?\u32654?\u35266?\u23601?\u34892?\u20102?\u12290?\u36825?\u26102?\u65292?\u21487?\u33021?\u23601?\u20250?\u26377?\u22823?\u37327?\u30340?\u19994?\u21153?\u20195?\u30721?\u25918?\u22312?View\u23618?\u65306?\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \f1 <c:choose>\line
    <c:when test="$\{ hasError \}">\line
    <p class="prompt-error">\line
        $\{errors.username\} $\{errors.password\}\line
    </p>\line
    </c:when>\line
    <c:otherwise>\line
    <p class="prompt">\line
        Woohoo, User <span class="username">$\{user.userName\}</span> has been created successfully!\line
    </p>\line
    </c:otherwise>\line
</c:choose> \par}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs36 \u26131?\u35835?\par}
}
